当使用缓冲流时,例如FileOutputStream
。
BufferedOutputStream bf = new BufferedOutputStream(new FileOutputStream(fileName));
假设有人向流写入32个字节,然后调用flush()
方法。根据其他StackOverflow答案,将32个字节传递/复制到OS存储器。
现在,如果这是真的,那不是那依赖于操作系统吗?例如如果我们在Windows上运行它,它还有它的系统缓存来管理文件数据。是不是我们还需要等待操作系统将数据刷新到文件,这就是那些32字节被实际写入磁盘的点?或者,我在这里错了?
答案 0 :(得分:0)
假设有人向流写入32个字节,然后调用flush()方法。根据其他StackOverflow答案,将32个字节传递/复制到OS存储器。
您正在寻找的单词是“正常的write()
API或其等价物”。
现在,如果这是真的,那不是那依赖于操作系统吗?例如如果我们在Windows上运行它,它还有它的系统缓存来管理文件数据。是不是我们还需要等待操作系统将数据刷新到文件,这就是那些32字节被实际写入磁盘的点?或者,我在这里错了吗?
你错了。所有发生的事情都是write()
。