FileReader 用于以字符为单位读取文本文件
构造方法摘要 |
---|
在给定从中读取数据的 File 的情况下创建一个新FileReader。 |
在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader。 |
在给定从中读取数据的文件名的情况下创建一个新FileReader。 |
从InputStreamReader类继承的方法:
方法摘要 | |
---|---|
| 关闭该流并释放与之关联的所有资源。 |
| 返回此流使用的字符编码的名称。 |
| 读取单个字符。返回值为读入字符对应的int值(0~65535) |
| 将字符读入数组中的某一部分。返回值为读入字符个数 |
| 判断此流是否已经准备好用于读取。返回值为读入字符个数 |
FileWriter类用于将字符数据写出到文本文件中
构造方法摘要 |
---|
根据给定的 File 对象构造一个 FileWriter 对象。 |
根据给定的 File 对象构造一个 FileWriter 对象。 |
构造与某个文件描述符相关联的 FileWriter 对象。 |
根据给定的文件名构造一个 FileWriter 对象。 |
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。 |
从OutputStreamWriter类继承的方法:
方法摘要 | |
---|---|
| 关闭此流,但要先刷新它。 |
| 刷新该流的缓冲。 |
| 返回此流使用的字符编码的名称。 |
| 写入字符数组的某一部分。 |
| 写入单个字符。 |
| 写入字符串的某一部分。 |
实例:
用这两个类实行复制文本文件的操作。
[java] view plain copy
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- class IODemo
- {
- public static void main(String[] args)
- {
- try
- {
- //使用FileReader和FileWriter进行文件复制(操作的是字符)
- FileReader fr=new FileReader("a.txt");
- FileWriter fw=new FileWriter("c.txt");
- int read;
- //byte b[]=new byte[1024];
- read=fr.read();
- while(read!=-1)
- {
- fw.write(read);
- //read=fis.read(b);
- read=fr.read();
- }
- fr.close();
- fw.close();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
上述例子也可以使用read()方法和write()方法逐个读入和写出字符
注:
1.在使用FileReader 对象进行文件输入操作的时,JVM先读取本地文本文,然后将其格式转化为Unicode编码格式进行操作。再用FileWriter进行文本文件输出时则把Unicode编码格式再转换成本地(本地主机上)的编码格式(如ASCII或者GBK等)。
2.FileReader与FileWriter两个类和FileInputStream和FileOutputStream两个类的操作方法基本相同,只不过前者基于字符,后者基于字节(byte),若操作的文件不是文本文件,则建议使用FileInputStream和FileOutputStream进行文件的输入输出。