前言
本节我们学习缓冲流,BufferedReader
其父类是Reader
;BufferedWriter
其父类是Writer
,可以看出缓冲流是字符流的一种。
作用:
BufferedReader
从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。
BufferedWriter
将文本写入字符输出流,缓冲字符,以提供字符,数组和字符串的高效写入。
一、BufferedReader
该类可以接收任意长度
的数据,而且避免乱码
的产生
缓冲区的内容可以更改
构造方法
1、创建使用默认大小的输入缓冲区的缓冲字符输入流。
//BufferedReader(Reader in)
File file=new File("src/one.text");
FileReader fr=new FileReader(file);
BufferedReader bf=new BufferedReader(fr);
2、创建使用指定大小的输入缓冲区的缓冲字符输入流。
//BufferedReader(Reader in, int sz)
File file=new File("src/one.text");
FileReader fr=new FileReader(file);
BufferedReader bf=new BufferedReader(fr,10);
常用方法
File file=new File("src/one.text");
FileReader fr=new FileReader(file);
BufferedReader bf=new BufferedReader(fr,10);
//1、读一个字符
int a=bf.read();
//2、读一行文字
String str=bf.readLine();
/* System.out.println(str);*/
//3、将字符读入数组的一部分
char[]chars=new char[10];
int b=bf.read(chars,0,10);
//4、返回一个Stream ,其元素是从这个BufferedReader读取的行
Stream stream=bf.lines();
二、BufferedWriter
提高输出的效率
构造方法
1、创建使用默认大小的输出缓冲区的缓冲字符输出流。
//BufferedWriter(Writer out)
FileWriter fw=new FileWriter("src/two.text");
BufferedWriter bw=new BufferedWriter(fw);
2、创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。
//BufferedWriter(Writer out, int sz)
FileWriter fw=new FileWriter("src/two.text");
BufferedWriter bw=new BufferedWriter(fw,20);
常用方法
File file=new File("src/one.text");
FileReader fr=new FileReader(file);
BufferedReader bf=new BufferedReader(fr,10);
FileWriter fw=new FileWriter("src/two.text");
BufferedWriter bw=new BufferedWriter(fw,20);
//1、刷新流,把数据写入到目的文件里去,不然数据都还是只写在缓冲区里,没有写入文件的。
bw.flush();
//2、写一行行分隔符
bw.newLine();
//3、写一个字符
int a=bf.read();
bw.write(a);
//4、写一个字符串的一部分
String str=bf.readLine();
bw.write(str,0,5);
总结
不管是BufferedReader
还是BufferedWriter
,开流后要记得关流 close()