我正在编写一个Android应用程序,试图解析通过蓝牙接收到的一些二进制数据,其中包含各种有符号和无符号的1-4字节整数。我要理解的是,将字节解释为无符号数字的最好(或者可能只是)方法是通过输入流。我的代码是:
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInput in = new ObjectInputStream(bis);由于某种原因,第二行抛出一个没有数据的StreamCorruptedException。我做错了什么?此外,如何在概念上“破坏”一堆字节?
发布于 2014-10-22 13:17:56
除非数据是由ObjectOutputStream编写的,否则不应该使用ObjectInputStream --这对Java的二进制序列化非常具体。如果这只是二进制数据,32位整数的4个字节等等,那么您可能需要DataInputStream,但是您应该验证您的数据是大端数据,这就是DataInputStream将处理的数据。
https://stackoverflow.com/questions/26508225
复制相似问题