gpt4 book ai didi

java - 使用 Java 按字节读取文件的非预期字节

转载 作者:行者123 更新时间:2023-11-30 11:44:39 25 4
gpt4 key购买 nike

我正在尝试按字节读取一些文件。问题是 Java 向我显示了不同的字节,我可以使用 Far 十六进制编辑器读取这些字节。

使用 Far 读取字节:00 00 00 17 00 00 00 29 00 00 00 99 00 00 00 9B

使用 Java 读取字节:0 0 0 17 0 0 0 29 0 0 0 22 0 0 0 3a

Java代码:

while ((line = (byte) _br.read()) != -1) {
lines.add(line);
System.out.println("lines = " + Integer.toHexString(line));
}

最佳答案

您过早地将 read() 返回的整数转换为字节。这会导致溢出并可能阻止 -1 文件结束检查工作(在您当前的问题之上)。它说返回值的文档在 0 到 65535 之间(不能由字节变量处理)。在 java 中,byte 是有符号的 8 位值,因此只要值大于 0x7F,就会出现问题。将 line 变量类型更改为 int 并重试。

关于java - 使用 Java 按字节读取文件的非预期字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10685971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com