字节缓冲流

缓冲流的好处

提高IO效率,减少访问磁盘的次数;

 使用说明

数据存储在缓冲区中,通过flush()方法将缓冲区的数据写入文件中。也可以直接使用close()方法,因为close方法里就调用了flush()方法。

  

1、BufferInputStream(字节输入缓冲流)

public static void main(String[] args) throws Exception {
        //创建文件输入字节流,定义输入文件地址
        FileInputStream fileInputStream = new FileInputStream("D:\\stu\\aaa.txt");
        //创建字节输入缓冲流对象,传入文件输入流
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
        //读取数据
        int data = 0;
        while ((data = bufferedInputStream.read()) != -1) {
            System.out.print((char) data);
        }
        //关闭字节缓冲流。这里不需要关闭文件输入流,因为在关闭字节缓冲流时,它已经帮我们做了相应的操作
        bufferedInputStream.close();
    }

 这里也可以使用自定义缓冲区

public static void main(String[] args) throws Exception {
        //创建文件输入字节流,定义输入文件地址
        FileInputStream fileInputStream = new FileInputStream("D:\\stu\\aaa.txt");
        //创建字节输入缓冲流对象,传入文件输入流
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
        //读取数据
        int data = 0;
        //自定义缓冲区存储字节数据
        byte[] buf = new byte[1024];
        while ((data = bufferedInputStream.read(buf)) != -1) {
            System.out.print((char) data);
        }
        //关闭字节缓冲流。这里不需要关闭文件输入流,因为在关闭字节缓冲流时,它已经帮我们做了相应的操作
        bufferedInputStream.close();
    }

  

2、BufferOutputStream(字节输出缓冲流)

public static void main(String[] args) throws Exception {
        //创建文件输出字节流,定义输出文件地址
        FileOutputStream fileOutputStream = new FileOutputStream("D:\\stu\\ddd.txt");
        //创建字节缓冲流对象,传入文件输入流
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
        //输出数据
        //输出ASCII码数据
        bufferedOutputStream.write(98);
        //输出字节码数据
        bufferedOutputStream.write("hello word".getBytes());
        //通过flush()方法将缓冲区数据刷新到文件中
        //这里也可以省略flush()方法,因为在close()方法中就调用了flush()方法帮助我们将数据刷新到文件中(但是不建议省略,假如在缓冲流关闭前系统中断,会导致数据无法正常写入文件)
        bufferedOutputStream.flush();
        //关闭字节输出缓冲流。这里不需要关闭文件输入流,因为在关闭字节缓冲流时,它已经帮我们做了相应的操作
        bufferedOutputStream.close();
    }

  

posted @ 2022-12-13 03:36  Amireux-126  阅读(37)  评论(0)    收藏  举报