Java.Random.IO 中的 ReadLong 和 WriteLong 方法
我正在尝试使用 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();
但我没有得到与我编写的相同的数字;相反,我得到 EOF 异常。
I am trying to write Long using Java command for Random File IO as follows:
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);
The problem is that when I write 7-15 digit number using writeLong ; it writes 8 bytes in file.
Then I am trying to read the same record into my program and decode it
Long l=in.readLong();
but I dont get the same number as I wrote ; Instead Iget EOF exception.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
64 位长的长 ID。这就是 8 个字节。 DataOutputStream 的 writeLong 方法写入 long 的二进制表示形式,而不是文本表示形式。
如果不知道用于读取长值的代码,就不可能知道它为什么不起作用。
A long id 64-bit long. That makes 8 bytes. The DataOutputStream's writeLong method writes the binary representation of the long, not the textual one.
Without knowing the code used to read the long value, it's impossible to tell why it doesn't work.
您的示例和注释中给出的代码应该可以工作。事实上,它并不表明这里发生了其他事情:
在尝试读取文件的代码中,打印调用
f.length()
时得到的内容。The code given in your example and comment should work. The fact that it doesn't suggests that something else is going on here:
In the code that attempts to read the file, print what you get when you call
f.length()
.