java - java中filewriter的flush和close函数的区别

标签 java io

我想知道 Java 中的 flush 和 close 函数的确切区别是什么?

在写入文件的过程中,当数据转储到文件中时?

请举例说明

最佳答案

flush() just 确保将任何缓冲数据写入磁盘(在这种情况下 - 更一般地说,通过您正在使用的任何 IO channel 刷新)。之后您仍然可以写入流(或写入器)。

close() 刷新数据并表示没有更多数据。它关闭任何文件句柄、套接字或其他任何东西。然后您就不能再写入流(或写入器)了。

请注意,如果不调用 flush() 数据 仍可以 写入相关的 IO channel - 只是一些数据可能被缓冲。

close() 通常也调用 flush(),但最近有人向我指出,在某些 JDK 实现中,刷新引发的任何异常都是收盘被吞了:(

关于java - java中filewriter的flush和close函数的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9272585/

相关文章:

python - 类文件对象的 `write` 方法返回什么?

java - Android Studio Camera2预览屏幕无法添加UI

java - 将 python stdout 读取为字符串

java - Netty 客户端引导连接失败

c# - 在 Windows Phone 中写入文件

java - 追加时向文件添加新行

java - 未找到异常 hibernate.properties

java - 如何命名一个将单个对象作为输入而另一个将多个对象作为输入的方法?

java - 在java中绘制一个点

java - 为什么 NIO FileChannels 从 InputStream/OutputStream 创建