Java 解析二进制数据
Java parsing binary data
我必须解析 Java 中的一些二进制数据。我的部分示例文件如下所示
00000000000000010000000000000100
这是 32 位长,我想将 16 位解析为 java 短。所以我希望输出是 1 和 4。到目前为止我写的代码是
Path path = Paths.get("filePath");
byte[] b = Files.readAllBytes(path);
ByteBuffer buffer = ByteBuffer.wrap(b).order(ByteOrder.LITTLE_ENDIAN);
buffer.rewind();
ShortBuffer ib = buffer.asShortBuffer();
System.out.println(b.length);
System.out.println(ib.get());
System.out.println(ib.get());
这是将每个值解析为 ascii。我得到以下输出。
32
12336
12336
谁能帮我解决这个问题。
谢谢
上午
解析字符串
Path path = Paths.get("filePath");
List<String> lines = null;
try {
lines = Files.readAllLines(path);
} catch (IOException e) {
e.printStackTrace();
}
for (String line : lines) {
System.out.println(Short.parseShort(line.substring(0, 16), 2));
System.out.println(Short.parseShort(line.substring(16, 32), 2));
}
我必须解析 Java 中的一些二进制数据。我的部分示例文件如下所示
00000000000000010000000000000100
这是 32 位长,我想将 16 位解析为 java 短。所以我希望输出是 1 和 4。到目前为止我写的代码是
Path path = Paths.get("filePath");
byte[] b = Files.readAllBytes(path);
ByteBuffer buffer = ByteBuffer.wrap(b).order(ByteOrder.LITTLE_ENDIAN);
buffer.rewind();
ShortBuffer ib = buffer.asShortBuffer();
System.out.println(b.length);
System.out.println(ib.get());
System.out.println(ib.get());
这是将每个值解析为 ascii。我得到以下输出。
32
12336
12336
谁能帮我解决这个问题。
谢谢 上午
解析字符串
Path path = Paths.get("filePath");
List<String> lines = null;
try {
lines = Files.readAllLines(path);
} catch (IOException e) {
e.printStackTrace();
}
for (String line : lines) {
System.out.println(Short.parseShort(line.substring(0, 16), 2));
System.out.println(Short.parseShort(line.substring(16, 32), 2));
}