io流使用缓冲区提高读写效率


缓冲区有:BufferedWriter写入流的缓冲区和BufferedReader读取流的缓冲区,因为Writer流对象和Reader流对象操作数据时要读一份写一份,而缓冲区能够把每次读入的数据存着,写的时候一次写出去。所以他们能够提高效率。原理是他里面封装了数组。

因为缓冲区技术是为流技术存在的,所以建立缓冲区之前必须先有流对象。然后把流对象作为参数传给缓冲对象的构造函数,注意,缓冲类是没有空参数构造函数的,他必须在流对象的前提下创建。

缓冲区对象也一样可以操作write(), flush(), close() 方法,并且当缓冲区 close() 时,他对应的流对象也就关闭了。

特殊的是:

BufferedWriter缓冲区有newLine() 方法,可以跨平台使用。我们知道Windows系统换行是\r\n,而Linux是\n,为了方便程序员写入统一的换行命令,java就封装了这个方法。

BufferedReader缓冲区有readLine() 方法,可以读取一行的字符串,不含任何行终止符。当读到文件末尾行以后,返回null,可以作为循环的控制条件。

1、用缓冲区写文件

import java.io.*;
class BufferedWriterDemo
{
	public static void main(String[] a)throws IOException
	{
		FileWriter fw = new FileWriter("D:\\javafile\\day19\\src\\11.txt");//写文件的流对象fw
		BufferedWriter bw = new BufferedWriter(fw);//缓冲区bw
		bw.write("qwertyuiop");
		bw.write("qwertyuiop");
		bw.newLine();//换行
		bw.write("fvdsgv");
		bw.close();//关闭资源
	}
}
2、用缓冲区读文件

import java.io.*;
class BufferedReaderDemo
{
	public static void main(String[] a)throws IOException
	{
		FileReader fw = new FileReader("D:\\javafile\\day19\\src\\11.txt");
		BufferedReader br = new BufferedReader(fw);
		String s=null;
		while((s=br.readLine())!=null)
		{
			System.out.println(s);
		}
		br.close();
	}
}


你可能感兴趣的:(io流,要掌握的程序代码)