java - Java-带缓冲的流
问题描述
所以最近我学会了使用流,包括输入和输出来学习,这样我就可以从一个文件中读取并写入一个文件。但是我的老师有时会决定使用缓冲,有时他不会。就像在这种情况下生病发布代码一样。你们明白为什么他没有在这种情况下放置缓冲输出流吗?
public void writePrimes2(String filename) throws IOException {
try(ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(filename))){
os.writeObject(primes);
os.flush();
}
}
解决方案
BufferedOutputStream 和 FileOutputStream 的工作方式类似。内部 BufferedOutputStream 写入内部缓冲区而不是直接写入操作系统 IO 设备,当缓冲区已满或关闭时,它会将缓冲区的内容刷新到 OS IO 设备。这在某些操作系统上可能更有效/更快。但结果是由于缓冲,输出可能会出现轻微延迟。
推荐阅读
- c++ - 当我尝试使用带有参数的priority_queue作为指向结构的指针时,为什么会弹出错误
- kubernetes - 如何测试 ClusterIssuer 求解器?
- python - 通过与段中第一行的差异将数据帧切割成段
- angular - 使用来自 Parent 的 ViewChild 访问嵌套在 ngTemplate 中的组件
- java - 如何在不导致组重新平衡的情况下为 Kafka 消费者实现始终重试策略/自定义重试策略
- java - 不推荐使用 Spring Boot 2.2.0 syncBody
- python - 如何从发送给 beautifulSoup 类的文件中删除 html 元素?
- php - 如何从 Slim 4 中间件进行重定向?
- python - conda 虚拟环境中 pip 安装的包不是隔离的
- bash - 如何从 N 非常大的目录中移动 N 个文件?Mac OSX