目录
一、什么是字符缓冲流
字符缓冲流和字节缓冲流一样,都是在原有基础上内部封装了一个缓冲区数组,以此提高流的读写速率。
二、使用方法
字符缓冲流:
* BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。默认值足够大,可用于大多数用途
* BufferedReader:从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取,可以指定缓冲区大小,或者可以使用默认大小。默认值足够大,可用于大多数用途
构造方法:
* BufferedWriter(Writer out)
* BufferedReader(Reader in)
//字符缓冲输输出流
private static void buffered_output() throws IOException {
FileWriter fw = new FileWriter("CharacterStream.txt");
BufferedWriter bw = new BufferedWriter(fw);
//同样有5中写入方法,在此只展示一种
bw.write("Hello");
bw.close();
}
//字符缓冲输输入流
private static void buffered_input() throws IOException {
FileReader fr = new FileReader("CharacterStream.txt");
BufferedReader br = new BufferedReader(fr);
//一次读取一个字符
// int data;
// while((data = br.read()) != -1) {
// System.out.println((char)data);
// }
//一次读取一个字符数组
char[] datas = new char[1024];
int len;
while((len = br.read(datas)) != -1) {
System.out.println(new String(datas,0,len));
}
br.close();
}
三、字符缓冲流的特有功能
* BufferedWriter:
void newLine():写一行行分隔符,行分隔符字符串由系统属性定义
* BufferedReader:
public String readLine():读一行文字。结果包含行的内容的字符串,不包括任何行终止字符,如果流的结尾已经到达,则为null
/**
* 字符缓冲流特有功能
*
* BufferedWriter:
* void newLine():写一行行分隔符,行分隔符字符串由系统属性定义
*
* BufferedReader:
* public String readLine():读一行文字。结果包含行的内容的字符串,不包括任何行终止字符,如果流的结尾已经到达,则为null
*
* @throws IOException
*/
private static void special_writer() throws IOException {
FileWriter fw = new FileWriter("CharacterStream.txt");
BufferedWriter bw = new BufferedWriter(fw);
for(int i = 0;i<10;i++) {
bw.write("Hello-" + i);
// bw.write("\n");//此种方法实现换行会受操作系统影响
bw.newLine();
}
bw.close();
}
private static void special_reader() throws IOException {
FileReader fr = new FileReader("CharacterStream.txt");
BufferedReader br = new BufferedReader(fr);
String line;
while((line = br.readLine()) != null) {
System.out.println(line);//只读内容不读换行符,因此要用println实现换行
}
br.close();
}