前言
前面我们学习了字节的输入输出流,见下图,本节学习字符输入流和字符输出流
。
字符输入输出流操作的是文件缓存区数据,将数据刷新到磁盘中,将流关闭后自动刷新文件缓冲区
字节流 | 字符流 | |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutPutStream | Writer |
一、FileReader
字符输入流,用于读取文件中的字符数据
构造方法
1、创建一个新的 FileReader ,给出 File读取。
//FileReader(File file)
File file=new File("src/one.text");
FileReader fr1=new FileReader(file);
2、创建一个新的 FileReader ,给定 FileDescriptor读取。
——FileDescriptor即文件描述符,上节提到过
//FileReader(FileDescriptor fd)
3、创建一个新的 FileReader ,给定要读取的文件的名称。
//FileReader(String fileName)
FileReader fr=new FileReader("src/one.text");
二、FileWriter
用于将数据以字符形式写入文件,如果输出文件不存在,FileWriter 会创建它。
构造方法
1、给一个File对象构造一个FileWriter对象。
//FileWriter(File file)
File file=new File("src/one.text");
FileWriter fw=new FileWriter(file);
2、给一个File对象构造一个FileWriter对象。
//FileWriter(File file, boolean append)
3、构造与文件描述符关联的FileWriter对象。
——FileDescriptor 文件描述符
//FileWriter(FileDescriptor fd)
4、构造一个给定文件名的FileWriter对象。
//FileWriter(String fileName)
FileWriter fw1=new FileWriter("src/two.text");
5、构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
//FileWriter(String fileName, boolean append)
FileWriter fw1=new FileWriter("src/two.text",true);
三 常用方法
File file=new File("src/one.text");
//创建字符输入流对象fr
FileReader fr=new FileReader("src/one.text");
//创建字符输出流对象fw1
FileWriter fw1=new FileWriter("src/two.text",true);
//实现高效率读写
char[]chars=new char[10];
int count=0;
while ((count=fr.read(chars))!=-1){
System.out.println(new String(chars,0,count));
fw1.write(chars,0,count);
}
//关流,不要忘记关流,不然数据不刷新,two.text文件中就不会有数据
fr.close();
fw1.close();
结果: