我正在开发一个基于 BluetoothChat 示例代码的应用程序。我需要能够将包含十六进制值的字节数组写入输出流。我还需要解析输入流上的字节数组并读取十六进制值。这是我的代码,只是简单地将十六进制值写入字节数组
byte[] data = new byte [3];
data[0] = (byte) 0x53;
data[1] = (byte) 0x1C;
data[2] = (byte) 0X06;
但是,当单步调试并查看“数据”时,调试器将值显示为 data[0]=83、data[1]=28、data[2]=6。为什么所有的值都转换为ascii?当我在读取输入流时观看 byte[] 缓冲区时,也会发生同样的事情。
// Read from the InputStream
bytes = mmInStream.read(buffer);
我发送了一个包含十六进制值的字节数组,但 byte[] 缓冲区显示的是 ascii 值。如何通过蓝牙读取和写入原始十六进制值?一些读/写流将是短的 <15 字节的命令流。但我还需要读取一个编码为十六进制字节的大文件。对该输入流有什么建议吗?我需要使用 BufferedInputStream 吗?