我用Python编写了一个程序,在TIFF IFD中查找特定的标记并返回值。这只是python中的一个概念验证,现在我需要将功能转移到java中。我想我可以对ASCII数据类型使用String(byteArray[])
构造函数,但是我仍然需要得到Unsigned short (2 byte)
和{Integer
或{struct
和mmap
类很容易做到这一点,在java中有人知道类似的方法吗?我查看了DataInput
类,但是readUnsignedLong
方法读取了8个字节。在
DataInputStream允许你读短线和长线。您应该使用适当的位掩码(缩写为
0xFFFF
,即0xFFFFFFFF
表示32位),以解释有符号/无符号类型之间的差异。在例如
如果您确定数据不会朝向2字节字段或4字节字段的高端,则可以放弃位屏蔽。否则,您需要使用更宽的数据类型来解释无符号值比有符号对应的值包含更大范围的值。在
Java没有无符号类型。生成
int
需要4个字节,生成long
需要8个字节,无符号或其他形式。在如果不想使用} 将这些字节值转换为带左填充的}s。请参见^{} 和^{} 。在
DataInput
,可以将字节读入字节数组(byte[]
),并使用^{int
s和{DataInput将是首选方法。您可以对两个字节值使用readUnsignedShort。对于4字节值,您必须使用workaround。。。在
相关问题 更多 >
编程相关推荐