java - 回答 fileoutputstreams 中 java 中 I/O 流刷新的必要性

标签 java io

嗨,我需要一个关于在 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/

相关文章:

c++ - cout 不产生输出

string - 为什么用:w and :append still overwrite the file?打开

Java String.matches 正则表达式

java - 原始类型只是不从 java.lang.Object 继承的类型吗?

java - 当相应的 JTextfield 为空时,如何填充 JTable 中的所有项目

c++ - 将 std::left 作为参数传递

java - 为什么新的InputStream仍然会读取旧InputStream中剩下的内容?

java - 为什么不推荐使用 java.io.File?

java - 导入后 Android 应用程序无法编译/查找 ACRA 库

java - 为什么HashSet中的项总是以相同的顺序显示?