码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础教程——缓冲流

时间:2019-07-13 09:24:42      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:字符缓冲流   mic   puts   基础教程   读取   输出流   image   cep   stack   

缓冲流

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

字节缓冲流: 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基础教程——缓冲流

标签:字符缓冲流   mic   puts   基础教程   读取   输出流   image   cep   stack   

原文地址:https://www.cnblogs.com/tigerlion/p/11179227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!