嗨,我需要一个关于在 java 中刷新 I/O 流的必要性的答案。因为在我的程序中,有刷新和没有刷新的输出是相同的。即,所有东西都被写入目标文件。那么为什么我需要flush?文件输入流会消耗缓冲内存吗?
下面是我的简单示例程序
file = new File("c:/newfile.txt");
fop = new FileOutputStream("c:/newfile.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
// get the content in bytes
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);
fop.flush();
fop.close();
即使我命令刷新并关闭它也可以将内容正确写入文件..?那么我们需要刷新吗?文件输出流会消耗内存吗?
最佳答案
Close 在流上调用 flush,因此如果您想关闭流,则不需要 flush。
如果你想确保数据被保存,而不关闭流,Flush 很有用,例如通过 Internet 发送消息或写入控制台时。您可能会注意到,如果您使用 system.out.print() 写入控制台,则不会显示输出,直到您调用 flush,或者直到文本中有一个新行(在这种情况下,Java 将调用 flush你)。
查看更多信息 this question
关于java - 回答 fileoutputstreams 中 java 中 I/O 流刷新的必要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16036324/