我正在尝试使用Java命令为随机文件IO编写Long,如下所示:
fstreamOut = new FileOutputStream(new File("C:\\Basmah","dataOutput.7"),true);
DataOutputStream out=new DataOutputStream(fstreamOut);
Long p= Long.parseLong(longNumberInString ); // Number of digits for this long key are 7-15
out.writeLong(p);
问题是当我用writeLong写7-15位数字时;它在文件中写入8个字节。 然后我试图将相同的记录读入我的程序并解码
Long l=in.readLong();
但我没有得到与我写的数字相同的数字;而是Iget EOF例外。
答案 0 :(得分:1)
64位长的长ID。那就是8个字节。 DataOutputStream的writeLong方法写入long的二进制表示,而不是文本的二进制表示。 在不知道用于读取长值的代码的情况下,无法分辨为什么它不起作用。
答案 1 :(得分:0)
您的示例和评论中给出的代码应该有效。这并不意味着其他事情发生在这里:
在尝试阅读文件的代码中,打印您拨打f.length()
时获得的内容。