gpt4 book ai didi

java - 用java读取二进制文件时,如何?

转载 作者:行者123 更新时间:2023-12-01 23:47:13 35 4
gpt4 key购买 nike

如果您想从使用缓冲区读入的文件中找到某些十六进制值并最终将一段代码解析到输出文件,那么最好的方法是什么?我不是在寻找示例代码。

这是一个非常大的文件,需要多次解析。我应该将其全部读入数组吗?什么样的数组?这取决于搜索我正在寻找的十六进制值的最佳方式,并且我不确定如何在 java 中搜索十六进制值。

你会怎么做?

编辑:事件的完整顺序。

“抱歉,是的,我想这会令人困惑。完整的解释。将会发生的事情是我搜索标记字节模式。找到它。然后我将处理接下来的 1035 字节。第 12 个和第 13 个字节是一个值我需要进行一次检查,以及进行另一次检查的第 1034 和 1035 个字节。字节 14 是我需要解析到文件的 1016 个字节的开始。

事件的顺序应该是:首先检查,检查。进行第二次检查,检查。如果这些检查失败,则将某个常量字节值写入输出文件(作为标志)。如果它们正常,则将 1016 字节写入输出文件。”

最佳答案

需要多次解析吗?同时?不确定该要求意味着什么。

我可能会从简单开始。将十六进制搜索字符串转换为我正在查找的字节数组。使用 FileInputStream 从文件中一次读取几个字节,并记录当前文件字节与搜索字节匹配的字节总数。

bStream = new BufferedInputStream(new FileInputStream(file));
byte[] bytes = new byte[4096];
int read;
while ((read = bStream.read(bytes)) > 0) {
// do these new bytes match the pattern I'm looking for
// accounting for boundaries, etc
}

关于java - 用java读取二进制文件时,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16840945/

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