【发布时间】:2015-07-27 00:08:12
【问题描述】:
我有一些计算数据(浮点数和整数),它们被写入这样的 12mb 文件
DataOutputStream os3;
os3 = new DataOutputStream(new FileOutputStream(Cache.class.getResource("/3w.dat").getPath()));
...... (some loops)
os3.writeFloat(f);
os3.writeInt(r);
os3.close();
然后我就这样读了
DataInputStream is3;
is3 = new DataInputStream(new FileInputStream(Cache.class.getResource("/3w.dat").getPath()));
...... (same loops)
is3.readFloat();
is3.readInt();
is3.close();
所以,我在 Windows 7 上只写了一次文件。之后我只在应用程序启动时读取它。文件读取在 Windows 7 上运行良好,但是当我尝试在 Ubuntu 上执行此操作时,出现 EOF 异常(代码和文件相同)。
我怀疑问题可能是由写入文件的一些 NaN 值引起的。
顺便说一句。在调试时,我发现在 ubuntu 读取过程中运行了大约 15% 的循环并引发异常。它读取的所有值都是“0.0”,但文件不包含零。
【问题讨论】:
-
当您在 Ubuntu 上尝试时,这需要写入和读取还是只需要读取(也就是说,您读取的是在 Windows 上运行的应用程序生成的文件)?跨度>
-
我只是在 Ubuntu 上读到的
-
如果你在 Ubuntu 上写作和阅读会发生什么?
-
您可以尝试将 \n 替换为 \r\n 因为行尾字符与 windows 和 linux 不同
标签: java windows ubuntu io binary