【发布时间】:2011-06-20 11:20:47
【问题描述】:
我有一个用 Visual Basic 5.0 制作的程序创建的二进制文件。该文件仅包含一组来自 Visual Basic 世界的 Long 值。我知道 Visual Basic 5.0 中的Long 大小为 4 个字节,但我不知道字节顺序。
我尝试使用各种“读取”方法使用 DataInputStream 解析文件,但我似乎得到了“错误”(即负数)值。
如何阅读并使用 Java 正确解释它? Visual Basic 5.0 中 Long 的字节顺序是什么?
以下是我正在尝试使用的某种代码;我正在尝试阅读 2 个 Long 并在屏幕上打印出来,然后再阅读 2 个等。
try {
File dbFile = new File(dbFolder + fileINA);
FileInputStream fINA = new FileInputStream(dbFile);
dINA = new DataInputStream(fINA);
long counter = 0;
while (true) {
Integer firstAddress = dINA.readInt();
Integer lastAddress = dINA.readInt();
System.out.println(counter++ + ": " + firstAddress + " " + lastAddress);
}
}
catch(IOException e) {
System.out.println ( "IO Exception =: " + e );
}
【问题讨论】:
-
4 个字节在 Java 中表示一个 int,并且 Java 中的所有原语都是有符号的,所以即使你看到负值它仍然是正确的。
-
如果您发布了您使用的实际代码以及您得到的错误结果,它会更容易帮助您。
-
Gabe:发布了我正在尝试使用的代码。
-
好的,很好。现在,如果您知道结果应该是什么,您可以发布示例输入以及不正确的输出以及您希望输出的内容,我们可以准确地告诉您出了什么问题。