【发布时间】:2011-11-23 05:56:06
【问题描述】:
我有一个通过蓝牙以二进制形式接收数据的应用程序。我使用输入流从蓝牙套接字读取数据到字节 []。但我必须解析所有消息,因为它们必须具有给定的格式才能有效。所有消息都是二进制的。
我的解决方案是将 byte[] 转换为字符串,然后拆分字符串并解析所有收到的消息。
要解析的数据示例: 0000000010000001
我应该知道前 8 个零是标题,10000001 是真实数据。
我的想法是创建一个字符串(从字节[])代表 -> 0000000010000001 使用新字符串(字节 []) 然后将整个字符串拆分为一个字节并检查值,例如:
string1 有 00000000 string2 有 10000001
我知道 8 个零是标题,因此 string2 具有数据的表示。
我的问题是关于这种方法的效率。这是在移动环境中执行此操作的最佳方法吗?
【问题讨论】:
-
new String(byte[])不执行“二进制” 010101 字符串,而是使用默认编码(ASCII、UTF-8 等)将byte[]解释为字符:download.oracle.com/javase/6/docs/api/java/lang/…(链接在这里因为解析器不喜欢标记中的[])
标签: java android parsing binary binary-data