Java基础教程——缓冲流

Posted tigerlion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Java基础教程——缓冲流的主要内容,如果未能解决你的问题,请参考以下文章

Java基础教程——字符流

Java基础教程——转换流

Java基础教程——字节流

Java基础教程(25)--I/O流

java IO教程《三》

毕向东_Java基础视频教程第19天_IO流(15~16)