java – 解析包含未知长度字段的字节数组

前端之家收集整理的这篇文章主要介绍了java – 解析包含未知长度字段的字节数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 Java中解析一个具有以下规范的字节数组:
Trace data format:
    - 4 bytes containing the Id.
    - 4 bytes containing the address.
    - N bytes containing the first name,where 0 < N < 32
    - N bytes containing the last name,where 0 < N < 32
    - 4 bytes containing the Minimum
    - 4 bytes containing the Maximum 
    - 4 bytes containing the Resource Default Level

今天我没有看到解析这个数组的任何解决方案,以获得具有正确类型的7变量.你确认或者我错过了Java中的魔术函数,允许在字节数组中找到字符串“限制”(我无法看到最小值如何与其关联的ASCII字符区分开来).

关于2个字符串之间的特殊字符是否有任何“约定”?

解决方法

好吧,你知道第一个名字从字节9开始,而姓氏以字节结尾(lenght-13).不确定的是如何找到名字的结尾和姓氏的开头.我看到一些可能的消息:

>如果格式是由C程序员定义的,则两个名称字段很可能以空字节终止,因为这是字符串的C约定.
>如果它是由Java程序员定义的,它可以由writeUTF()写入,这意味着字节计数的规范很可能是错误的.但是,这至少指定了编码,否则这是一个悬而未决的问题.>如果它是由COBOL程序员定义的,则这两个字段可以是固定长度的,并用零或空格填充,格式规范列出有效负载长度而不是字段长度.>如果它是由一个真正无能的程序员(无论什么语言)定义的,它包含两个没有分隔符或计数的名称,所以不可能实际分开它们(如果你没有这些信息,那么就没有“魔法”功能了Java或其他可以凭空捏造的东西).我想你可能希望姓氏总是以大写字母开头,没有人使用双重名字或全部大写字母.

猜你在找的Java相关文章