• 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
    
  • 相关阅读:
    适配器和外观模式
    命令模式
    单件模式
    工厂模式
    装饰者模式
    观察者模式(发布--订阅模式)
    设计模式之策略模式
    C#学习笔记15
    C#学习笔记14
    lucky的时光助理-2017.02
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11179227.html
Copyright © 2020-2023  润新知