Java基础教程——缓冲流

缓冲流

“缓冲流”也叫“包装流”,是对基本输入输出流的增强:

字节缓冲流: BufferedInputStream , BufferedOutputStream
字符缓冲流: BufferedReader , BufferedWriter

缓冲流的基本原理:
创建流对象时,会创建一个缓冲区数组,通过缓冲区读写,减少系统IO次数,以提高读写效率。
就像送快递,快递小哥一次带一件当然慢,所以用车来运输,跑一趟可以带很多件。


以字符流为例:
|-读文件:FileReader + BufferedReader
|-写文件: FileWriter + BufferedWriter

package ahjava.p05io;
import java.io.*;
public class 字符流 {
	public static void main(String[] args) {
		字符流R();
		字符流W();
	}
	static void 字符流R() {
		File file = new File("testRead.dat");
		// 通过文件对象创建文件读取流对象
		FileReader fr;
		try {
			fr = new FileReader(file);
			// 将文件读取流包装成缓冲读取流
			BufferedReader br = new BufferedReader(fr);
			String str;
			while ((str = br.readLine()) != null) // 逐行读取数据
			{
				System.out.println(str);
			}
			br.close(); // 关闭流
			fr.close(); // 关闭流
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	static void 字符流W() {
		File file = new File("testFileWriter.txt");
		// 通过文件对象创建文件输出字符流对象
		FileWriter fw;
		try {
			fw = new FileWriter(file);
			// 将文件输出字符流包装成缓冲流
			BufferedWriter bw = new BufferedWriter(fw);
			bw.write("萨瓦迪卡");
			bw.newLine(); // 换个新行
			bw.write("どうぞ よろしく お愿いします");
			bw.close(); // 关闭流
			fw.close(); // 关闭流
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

字节流也有包装流,试用包装流改写文件复制的代码,并测试程序效率提升的情况。

java.io.BufferedOutputStream
java.io.BufferedInputStream
原文地址:https://www.cnblogs.com/tigerlion/p/11179227.html