【发布时间】:2017-09-14 02:31:22
【问题描述】:
我正在用 java 读取一个二进制文件(用 c# 编写)。它是一个超过 360Kb 的长文件。我必须逐字节读取代码以填充字段。 我们已经阅读了已经在 c# 中实现的代码,并且必须复制该行为。在c#中,代码是这样的
FileVersion = s.ReadByte()
FileVersionMinor = s.ReadByte()
HeaderLength = s.ReadInt16()
现在我正在尝试在 java 中做与上面相同的操作
dis = new DataInputStream(fin);
fileVersionMajor = dis.readUnsignedByte()
def fileVersionMinor = dis.readUnsignedByte()
def headerLength = dis.readShort()
但我得到不同的输出,当我试图深入研究问题时,我看到 java 代码在 streambyte 的末尾附加了 00000000。
这里有什么问题?
PS 如果我这样做
def headerLength = dis.readByte(),
我得到了预期值。
【问题讨论】:
-
在Java中没有
def关键字作为C#的var,也许你的意思是Scala(需要重新标记到[scala])?
标签: java c# binary filereader unsigned-integer