举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > java缓冲输出流 Java 缓冲输入流

java缓冲输出流 Java 缓冲输入流

2023-03-05 22:18 Java教程

java缓冲输出流 Java 缓冲输入流

java缓冲输出流

Java缓冲输出流是一种特殊的输出流,它可以将数据缓冲到内存中,然后一次性将数据写入到目标文件中。它可以大大提高文件的写入速度,因为它不必每次都将数据写入文件,而是将数据缓存在内存中,然后一次性将所有的数据写入文件。

Java缓冲输出流使用了装饰者设计模式,它可以包装一个已有的输出流,并添加额外的功能。例如,BufferedOutputStream可以包装一个FileOutputStream对象,并添加缓存功能。

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test.txt")); 

Java缓冲输出流还可以使用flush()方法来强制将缓存中的数据立即写入文件。如果不使用flush()方法,那么在close()方法执行之前,所有的数据都会保留在系统缓存中。

 
bos.flush();  // 刷新此输出流并强制将所有缓存的输出字节立即写出 
bos.close(); // 关闭此输出流并释放与此流有关的所有系统资源 

Java 的 BufferedOutputStream 类还可以使用 write(byte[] b, int off, int len) 方法来一次性将多个字节数组写入到目标文件中。这样做可以大大减少对文件的读/写请求,因此也能够明显地加快文件整体的读/写速度。

Java 缓冲输入流

Java IO教程 - Java缓冲输入流


BufferedInputStream通过缓冲数据向输入流添加功能。

它维护一个内部缓冲区以存储从底层输入流读取的字节。

我们创建缓冲区输入流如下:

String srcFile =“test.txt";BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));

以下代码显示如何使用BufferedInputStream从文件读取。

import java.io.BufferedInputStream;
import java.io.FileInputStream;

public class Main {
  public static void main(String[] args) {
    String srcFile = "test.txt";
    try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
        srcFile))) {
      // Read one byte at a time and display it
      byte byteData;
      while ((byteData = (byte) bis.read()) != -1) {
        System.out.print((char) byteData);
      }
    } catch (Exception e2) {
      e2.printStackTrace();
    }
  }
}

上面的代码生成以下结果。



阅读全文
以上是编程学为你收集整理的java缓冲输出流 Java 缓冲输入流全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部