我想不断地将数据写入光盘。 我想经常将数据刷新到磁盘(例如每 64MB 的 block )。您能提出什么解决方案?
我认为标准 OutputStream 可能是比 nio.channels 更好的选择,因为它更简单。
最佳答案
如果您正在写入连续的数据流,例如附加到文件末尾,则偶尔调用一次 flush()
的常规 OutputStream
只是与 nio
一样好或更好。 nio
可以为您带来很大优势的地方是编写分布在文件不同区域的许多小块。在这种情况下,您可以使用内存映射文件,这可能是对旧式写入的改进。但是,从我理解的问题来看,您宁愿处理连续的数据流。我建议您实现常规解决方案,该解决方案为您提供更好的代码,并且仅在发现性能不足时才搜索替代方案。在这种情况下,我不希望 nio
产生明显的差异。
关于java - 优化频繁flush(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691736/