1. 文件字节输入、输出流的read和write方法使用字节数组读写数组读写数据,即以字节为单位处理数据,字节流不能够很好操作Unicode字符,比如一个汉字在文件中占2个字节,试过使用字节流,读取不当会出现乱码的现象,字符输入流和输出流的read和write方法使用字符数组读写即以字符为单位来处理数据
2. FileReader和FileWriter分别是Reader和Writer的子类,其构造方法如下:
FileReader(String filename)
FileReader(File filename)
FileWriter(String filename)
FileWriter(File filename)
//第二个参数表示是否允许文件内容的追加
FileWriter(String filename,boolean append)
FileWriter(File filename,boolean append)
3. 下面的例子是使用文件字符输入、输出流将Test.java的内容写入到Test2.java中,具体的代码如下:
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
public class Main {
public static void main(String[] args) throws IOException {
//对于文件字节流来说读取Unicode码的话不是特别方便
//比如一个汉字占两个字节如果使用字节流的话读取不当会造成乱码的情况
//创建输入流
File srcFile = new File("C:\\User\\Desktop\\Test.java");
//创建输出流
File targetFile = new File("C:\\User\\Desktop\\Test2.java");
//创建字符数组
char a[] = new char[19];
int n = -1;
//创建指向输出流的字符输入流
Reader reader = new FileReader(srcFile);
//第二个参数表示是否允许第二次运行的时候进行内容的追加
Writer writer = new FileWriter(targetFile, true);
while((n = reader.read(a)) != -1){
writer.write(a, 0, n);
}
reader.close();
writer.close();
}
}