请仔细阅读我的问题,然后判断它是否重复
我是绿色的。如果我的描述中有任何错误,请帮我弄清楚
我想用java解析二进制文件。第一张图片是由十六进制编辑器打开的文件,你可以看到000000 0到000000 3 ef ef ef ef ef
这是我的代码
String filepath = "D:\\CHR_2_20151228132500.dat.gz";
File file = new File(filepath);
FileInputStream fis = new FileInputStream(file);
GZIPInputStream gzip = new GZIPInputStream(fis);
DataInputStream din = new DataInputStream(gzip);
byte[] bytes = new byte[20];
din.read(bytes, 0, 4);
for (byte b : bytes) {
String str = Integer.toHexString(b);
System.out.print(str);
}
这是我解析的结果,你可以看到每个 ef 之间有 ffffff 和几个零附加
我想在十六进制编辑器中获取与数据相同的数据。我可以得到这个吗?
答案 0 :(得分:1)
String str = Integer.toHexString(b);
字节用Java签名。你需要:
String str = Integer.toHexString(b & 0xff);
然后确保您需要的两位数字:
String str = Integer.toHexString((b & 0xff)+256).substring(1);