cru*_*ush 7 java comparison binary-data
我有一个二进制文件,它使用4个字符集来形成具有"含义"的整数.例如,4个字节'0005',以整数形式等于808464437.
我宁愿在我的Java代码中代表这些'0005'而不是808464437.我也不想设置常量final int V0005 = 808464437.
在C++中,我可以执行以下操作:
fileStream->read((byte*) &version, 4); //Get the next bytes and stuff them into the uint32 version
switch (version) {
case '0005':
//do something
case '0006':
//do something
case '0007':
//do something
}
Run Code Online (Sandbox Code Playgroud)
在Java中,我的问题不是读取4个字节并将它们放入某种数据类型.我的问题是将一些数据类型与const char数组进行比较'0005'.
如何将int或其他形式与'0005'Java中的const字符数组进行比较?我需要尽可能高效地做到这一点!
最有效的方法是使用整数 - 像 Final int V0005 = 0x30303035 (此处看到的几个不同想法的组合)之类的东西是可以管理的。Java 只是没有您正在寻找的那种整数文字。
如果您确实想使用字符串,则需要首先读取字节数组中的字符,然后将其转换为字符串(默认字符集通常可以工作,因为它是 ASCII 的超集)。然而,这样做的效率会较低。
您可以编写一个函数来根据简单数字(例如 5)计算常量值,以获得更好的可读性,但这可能有点过头了。
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |