【发布时间】:2010-08-26 17:27:49
【问题描述】:
我正在使用 File.createTempFile 创建我想要保留的常规文件,我使用此方法的原因是因为它保证了唯一的文件名。但是我看到这种方法创建的文件有一个奇怪的事情:在我刷新并关闭此文件上的输出流后,我故意使运行 JVM 的机器崩溃,我假设由于流被刷新和关闭,文件应该包含有效数据。但是,有时文件会被 0x0 填充(注意,我在运行 WinXP 和最新 Sun JVM 1.6 的 VMWare 机器上对此进行测试)。
问题是由临时文件引起的,还是适用于所有 Java 文件 io 的某种普遍问题?我应该怎么做才能确保数据被刷新到硬盘?
谢谢
【问题讨论】:
-
先向我们展示你的 I/O 代码,然后我们可以将其归咎于 Java。
-
我使用的是旧式 io: File file = File.createTempFile(FILE_PREFIX, FILE_SUFFIX, myDirectory); FileOutputStream fout = new FileOutputStream(file); ObjectOutputStream out = new ObjectOutputStream(fout); out.writeObject(obj); out.flush(); out.close();
标签: java file-io filestream temporary-files