与文件的前几个字节比较给定的值。

3
我正在尝试了解一些基础知识,我正在使用Java读取二进制文件,在这种情况下这是不相关的,但可能会有所帮助。所以,我知道文件的前四个字节的值为0x9AA2D903。但是,当我读取它们时,它们的顺序被“颠倒”,就像这样:03 D9 A2 9A(03-第一个字节,D9-第二个字节,依此类推)。
为了比较0x9AA2D903的值和我得到的输出,我需要做什么?首先,想到的是获取这4个字节的数组,然后翻转它们并转换为字符串。但看起来很糟糕。
如果您能指出一些相关文献,那将是很好的。
代码:
Path path = Paths.get(Utils.getResourseURI("Demo.kdbx"));

try {
    FileInputStream fin = new FileInputStream(path.toString());
           }
    int len;
    byte bytes[] = new byte[16];

    do {
        len = fin.read(bytes);
        for (int j = 0; j < len; j++)
            System.out.printf("%02d\n", bytes[j]);

    } while (len != -1);
}
2个回答

3

我无法发表评论,但你应该看一下这篇SO文章

看起来你的文件和你读取的方式不同。例如,文件可能是小端,而你正在使用大端进行读取。因此,与其尝试比较值并反转顺序,不如直接按所需的字节序读取。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接