readInt16()在Java中
问题描述:
我读一个二进制文件(这是写在C#中)在Java C#VS readShort()。其长文件超过360Kb。我必须逐字节地读取代码来填充字段。 我们已经阅读了在C#中已经实现的代码,并且必须复制该行为。在C#代码是这样的readInt16()在Java中
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()
, 我得到期望值。
答
您可能需要使用readByte()
而不是readUnsignedByte()
。
+0
你错了,ReadByte()给出了无符号整数,例如readUnsignedByte() –
有没有在java'def'关键字为C#的'var',也许你的意思斯卡拉(需要重新标记为[阶])? –