我现在需要把一个使用C++生成的二进制文本文件使用Java解析出来,这个文本文件的格式是这样的:Fields       Offset        Size
==================================
BlockSize    0             4 bytes
Count        4             4 bytes
String 1     8             x bytes
String 2     8+x           y bytes
...          ...           ...
String n     8+x+y+...     z bytes上述格式中,String n的长度不是固定的,且不知道最大长度是多少,怎么样才能把每一个字符串正确的解析出来呢?

解决方案 »

  1.   

    不好意思,我把那个文件保存成.txt,但内容是二进制形式的(ios::binary),不是直观的文本格式
      

  2.   

    String head = "Fields       Offset        Size"; //读出第一行
    int start = head.indexOf("Fields"); 
    int end = head.indexOf("Offset"); //起始/终止位置
    String line = "String 1     8             x bytes "; //读出下边的每一行
    String s = line.substring(start, end).trim(); //取得字符串,去掉前边后边空格
      

  3.   

    zyongsheng83
    你可能理解错了,这个二进制块不是按行来存储的,上面表示的只是二进制块的存储格式:第一个字段表示BlockSize,第二个字段表示存储的字符串的个数,后面再依次存储各个字符串