首页 > 代码库 > JAVA之IO技术BufferedReader,BufferedWriter的缓冲区技术的使用和原理

JAVA之IO技术BufferedReader,BufferedWriter的缓冲区技术的使用和原理

BufferedReader:

package ioTest.io2;
/*
 * BufferedReader:该缓冲区提供了一个一次读一行的方法
 * readline();
 * 
 * 加入缓冲区技术的优点是什么呢?
 * 原来我是读一个字符取一个字符,现在变成我读一行字符,将其放在数组中,然后再取。
 * 这样是不是提高了效率。实际上BufferedReader类底层实现的原理,就是利用了数组。
 */
import java.io.BufferedReader;
import java.io.FileReader;

public class BufferedReaderDemo {

	public static void main(String[] args) throws Exception {
		//创建输入流
		FileReader in=new FileReader("ioTest1.txt");
		//关联BufferedReader
		BufferedReader br=new BufferedReader(in);
		System.out.println((char)br.read());
		System.out.println(br.readLine());
		//也可以利用br.readLine()的返回值作为循环的条件。是否为null

	}

}


 

BufferedWriter:

package ioTest.io2;

import java.io.BufferedWriter;
import java.io.FileWriter;

/*
 * 	字符流的缓冲区技术子类:是为了提高流操作的性能,一般做文件读写操作,都要用缓冲技术。
 * 	所以缓冲区的出现是建立的流对象的基础上,这个从构造函数的参数也可以看出来。
 *	BufferedWriter,BufferedReader
 */
public class BufferedWriterDemo {

	public static void main(String[] args) throws Exception {
		//创建一个写入流对象-输出流
		FileWriter out=new FileWriter("ioTest1.txt");
		BufferedWriter bw= new BufferedWriter(out);
		bw.write("abcdefg");
		bw.flush();
		bw.close();
		//关闭了缓冲区对象,实质上就是关闭了流对象,因为本质上还是流对象调用了系统的资源做了文件的写入操作。
		//out.close();//这里面无需再关闭流对象。	
	}

}