带缓冲的Java流

时间:2019-03-16 19:25:45

标签: java

因此,最近我学会了使用流,既可以使用输入也可以使用输出来学习,因此我可以从文件中读取并写入其中。但是我的老师有时决定使用缓冲,有时他不使用。像这种情况下,请张贴代码。你们知道为什么他在这种情况下没有放置缓冲输出流吗?

  public void writePrimes2(String filename) throws IOException {
        try(ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(filename))){
            os.writeObject(primes);
            os.flush();
        }
    }

2 个答案:

答案 0 :(得分:1)

BufferedOutputStream和FileOutputStream都类似地工作。内部BufferedOutputStream写入内部缓冲区,而不是直接写入操作系统IO设备,并且当缓冲区已满或关闭时,它将缓冲区的内容刷新到OS IO设备。在某些操作系统上,这可能更高效/更快。但是结果是由于缓冲,输出可能会稍微延迟。

答案 1 :(得分:0)

ObjectOutputStream用于序列化对象的状态(实例变量的值)。如果物体足够小,则整个操作可能会足够快。