Java IO流---字节缓冲流

在加入缓冲流之前,我们是直接使用字节流或者字符流文件做读写操作。此操作,效率和性能都差。

使用缓冲流可以让程序高效地读写文件,原理是将数据暂时放至缓冲区,然后再一起读取或写入。

BufferedInputStream: 创建此类对象时,对象中包含了一个用于缓冲数据的数组。

BufferedOutputStream:创建此类对象,程序可以将各个字节先写入底层输出流,而不会针对每

            个字节去调用底层系统。

 

代码示例:

 

package com.seven.javaSE;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

//字节缓冲流
public class BufferStreamDemo {
    public static void main(String[] args) {
        byteReader();
        byteWrite();
    }
    
    //字符缓冲输入流
    public static void byteReader() {
        try {
            InputStream in = new FileInputStream("C:/TestFile/hello.txt");
            //将字节输入流加入到字节缓冲流中
            BufferedInputStream bis = new BufferedInputStream(in);
            byte [] bytes = new byte[1024];
            int len=-1;
            while((len=bis.read(bytes))!=-1) {
                System.out.println(new String(bytes,0,len));
            }
            //关闭缓冲流,而不用显式关闭字节流,因为缓冲流关闭时,就会关闭字节流
            bis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    //字符缓冲输入流
    public static void byteWrite() {
        try {
            OutputStream out = new FileOutputStream("c:/TestFile/target.txt");
            BufferedOutputStream bos = new BufferedOutputStream(out);
            String str = "我是字节缓冲流:在字节流基础上加入缓冲,增强读写效率";
            bos.write(str.getBytes());
            bos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

posted @ 2022-06-17 15:04  藤原豆腐渣渣  阅读(56)  评论(0编辑  收藏  举报