我现在需要把一个使用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的长度不是固定的,且不知道最大长度是多少,怎么样才能把每一个字符串正确的解析出来呢?
==================================
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的长度不是固定的,且不知道最大长度是多少,怎么样才能把每一个字符串正确的解析出来呢?
int start = head.indexOf("Fields");
int end = head.indexOf("Offset"); //起始/终止位置
String line = "String 1 8 x bytes "; //读出下边的每一行
String s = line.substring(start, end).trim(); //取得字符串,去掉前边后边空格
你可能理解错了,这个二进制块不是按行来存储的,上面表示的只是二进制块的存储格式:第一个字段表示BlockSize,第二个字段表示存储的字符串的个数,后面再依次存储各个字符串