java当我们刷新IO流时会发生什么

时间:2016-11-05 07:18:51

标签: java io

当使用缓冲流时,例如FileOutputStream

BufferedOutputStream bf = new BufferedOutputStream(new FileOutputStream(fileName));

假设有人向流写入32个字节,然后调用flush()方法。根据其他StackOverflow答案,将32个字节传递/复制到OS存储器。

现在,如果这是真的,那不是那依赖于操作系统吗?例如如果我们在Windows上运行它,它还有它的系统缓存来管理文件数据。是不是我们还需要等待操作系统将数据刷新到文件,这就是那些32字节被实际写入磁盘的点?或者,我在这里错了?

1 个答案:

答案 0 :(得分:0)

  

假设有人向流写入32个字节,然后调用flush()方法。根据其他StackOverflow答案,将32个字节传递/复制到OS存储器。

您正在寻找的单词是“正常的write() API或其等价物”。

  

现在,如果这是真的,那不是那依赖于操作系统吗?例如如果我们在Windows上运行它,它还有它的系统缓存来管理文件数据。是不是我们还需要等待操作系统将数据刷新到文件,这就是那些32字节被实际写入磁盘的点?或者,我在这里错了吗?

你错了。所有发生的事情都是write()