0

我有一个十六进制文件,其值如下

f0 01 05 00 00 00 00 00 00 3d 61 c1 c1 df 40 02 00 c0 00 00 09 18 16 00 ef 01 40 00 00 3f 20 f0 01 03 00 00 00 00 00 00 c7 a2 c1 c1 010 4 00 09 18 16 00 ef 01 40 00 00 3f 20 f0 01 02 00 00 00 00 00 00 50 e4 c1 c1 df 40 02 00 c0 02 00 09 79 09 04 c7 01 e1 4e 02 3f 00 f0 0 0 0 0 0 00 00 00 d9 25 c2 c1 df 40 02 00 c0 03 00 09 02 19 25 3c 00 22 6a 01 db 09 f0 04 05 00 00 00 00 00 00 62 67 c2 c1 df 40 02 00 c0 19 04 00 3c 09 02 22 6a 01 db 09 f0 01 07 00 00 00 00 00 ec a8 c2 c1 df 40 02 00 c0 05 00 13 7b 06 04 a4 0d 91 0c b6 c4 4e 02 3f 00 01 00 00 00 00 8 00 0 0 0 00 00 00 00 00 6b 13 c3 c1 df 40 02 00 c0 06 00 13 7b 2b 04 93 0d 43 13 b6 c4 2e 00 3f 00 01 00 00 00 00 00 00 f0 01 09 00 00 00 07 0 0 00 00 07 0 00 00 00 00 00 00 00 00 07 0 0 00 07 0 00 00 00 00 df 40 02 00 c0 07 00 13 7b 4f 04 d6 0d 2e fc b5 c4 2e 00 3f 00 01 00 00 00 00 00 00 f0 01 05 00 00 00 00 0000 68 e8 c3 c1 df 40 02 00 c0 08 00 13 7b 55 04 ca 0d 7b 10 b6 c4 29 00 3f 00 01 00 00 00 00 00 00 f0 01 06 00 00 00 00 00 df 00 e7 52 0 c4 c1 c0 09 00 13 7b 46 04 f1 0d c5 15 b6 c4 2e 00 3f 00 01 00 00 00 00 00 00

我希望每当我找到f0后跟复制这些模式以及01之后01的任何内容直到下一个f0等等,直到我拥有具有这些序列的所有模式并将其保存在文件中

并且每当我找到f0后跟复制这些模式以及01之后02的任何内容直到下一个f0等等,直到我拥有具有这些序列的所有模式并将其保存在另一个文件中

依此类推,f0 01 03直到f0 01 09

这是我试图做的

String filename = "C:\\tm09888.123";
FileInputStream in = null;
int readHexFile = 0; 
char hexToChar = ' ';
String[] bytes = new String[10];

try
{            
    in = new FileInputStream(filename); 

    while((readHexFile = in.read()) != -1)
    {       
        if (Integer.toHexString(readHexFile).equals("f0"))
        {
            System.out.print("\n\n\n");
        }
        System.out.print(Integer.toHexString(readHexFile) + " ");
    }
}
catch (IOException ex)
{
    Logger.getLogger(NARSSTest.class.getName()).log(Level.SEVERE, null, ex);
}  

}

我拆分了所有模式,但我怎么能告诉程序要f0照顾f001 01

然后将所有这些模式保存在另一个文件中

4

1 回答 1

0

我建议你研究正则表达式。它们是一种在数据中搜索模式的强大方法,因此它们非常适合您在此处尝试完成的任务。您可以使用它们在文件中搜索“ f0 0\d 0\d”并获取所有值,但不包括下一个“ f0 0\d 0\d”块。

于 2012-12-24T21:18:26.787 回答