当前位置: 首页 > 知识库问答 >
问题:

如何匹配文件JAVA中的某个十六进制值?

谷梁襦宗
2023-03-14

我需要能够在如下文件中找到特定值(例如80):

4D 54 68 64 00 00 00 06 00 01 00 01 00 C0 4D 54 72 6B 00 00 00 00 00 00 31 00 90 60 40 81 40 80 60 00 90 62 40 81 40 80 62 40 00 90 64 40 81 40 80 64 40 00 90 62 40 81 40 62 40 00 90 70 81 40 70 70 70 00 FF 2F 00

我的代码示例:

RandomAccessFile file = new RandomAccessFile(new File(fichierAConvertir), "rw");

        System.out.println(fichierAConvertir);
        if(file.read() == 0x80)
        {
            System.out.println("trouvé");
        }
        else{
            System.out.println("pas trouvé");
        }

我还希望能够用另一个值替换该值的所有情况。

我是法国人,很抱歉我的英语水平。。

共有1个答案

郭恩
2023-03-14

您可以轻松地将文件读入字符串,然后对该字符串执行全部替换。最后,将更新后的字符串写回文件。您可以将文件读入字符串(可在此处找到):

Scanner scanner = new Scanner(new File("filename"));
String content = scanner.useDelimiter("\\Z").next();
scanner.close();

在这两个链接中,有其他方法可以将文件转换为字符串:

  • 如何从文件内容创建Java字符串
  • 从文本文件读取并存储在字符串中

从这三种方法中选择一种,然后继续执行以下代码。

API中的String有一个replaceAll()方法:

content = content.replaceAll("80", "some other string");

最后,将此更新String写回文件,如下所示:

PrintWriter writer = new PrintWriter("filename", "UTF-8");
writer.println(content);
writer.close();//don't forget to close!

如果你想把字符串转换成十六进制,然后再转换回来,那么我来看看这个问题。

注意:不要忘记关闭您的写入器/扫描仪/打印机等。查看此解决方案,了解原因。

 类似资料:
  • 问题内容: 我有一个Java文件 我想将 pic.bmp 转换为十六进制值的数组,以便可以编辑并将其保存为修改后的版本。 是否有Java类可以做到这一点? 问题答案: 你真幸运。我几个月前不得不这样做。这是一个精简版,需要从命令行获取两个参数。命令行参数都是文件名…第一个是输入文件,第二个是输出文件。输入文件以二进制形式读取,输出文件以ASCII十六进制形式写入。希望您可以根据自己的需要进行调整。

  • 我从下面的另一个问题中看到了一个代码,但我不知道如何利用它。

  • 问题内容: 我有一个代表2的补码的十六进制字符串。是否有一种简单的方法(库/函数)将十六进制转换为十进制而不直接使用其位? EG这是给定左侧十六进制的预期输出: 谢谢! 问题答案: 这似乎在欺骗Java转换数字而不强制给出正结果: 当然,这种情况仅适用于8、16、32和64位2的补码:

  • 问题内容: 我有一个家庭作业,需要在十进制,二进制和十六进制之间进行三向转换。我需要帮助的功能是将十进制转换为十六进制。我几乎不了解十六进制,但是如何将十进制转换为十六进制。我需要一个接受并返回的函数。不幸的是我没有此功能的任何草稿,我完全迷路了。我只有这个。 另外,我不能使用诸如Integer.toHexString()之类的预制函数或任何其他东西,我需要真正地制作算法,否则我什么都不会学。 问

  • 本文向大家介绍如何将十六进制转换为十进制?,包括了如何将十六进制转换为十进制?的使用技巧和注意事项,需要的朋友参考一下 而十六进制数是具有值是16的数字系统中的一个并且它具有唯一的16个码元:0,1,2,3,4,5,6,7,8,9和A,B,C,d,E ,其中A,B,C,D,E和F分别是十进制值10、11、12、13、14和15的单位表示。而十进制系统是最熟悉的号码系统向公众开放。它是10的基数,只

  • 本文向大家介绍如何将十进制转换为十六进制?,包括了如何将十进制转换为十六进制?的使用技巧和注意事项,需要的朋友参考一下 十进制是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而十六进制是计算机或数字系统中最常见的数字系统颜色表示。它是基数16,只有16个符号:0、1、2、3、4、5、6、7、8、9和A,B,C,D,E,F。这些A,B,C,D ,E,F分