我通过usb在Android和其他设备之间发送/接收数据。
我用于接收数据的代码:
StringBuilder stringBuilder = new StringBuilder();
int i = 0;
int s = buffer[0];
for (; i < s; i++) {
stringBuilder.append(String.valueOf((char)buffer[i]));
}
byte[] b = String.valueOf(stringBuilder).getBytes();
我收到所有字节都很好,除非字节大于127.怎么办?
我尝试使用:
stringBuilder2.append(String.valueOf((int)buffer[i] & 0xFF));
如果我读String.valueOf(stringBuilder)并且在创建byte []
时没有工作答案 0 :(得分:0)
如果您收到的所有字节都是ASCII格式,则在stringBuilder
中您已经拥有所需字符串的文本。
另一方面假设buffer[0]
是你缓冲区的大小,你可以尝试这样的事情:
byte[] tmp = new byte[buffer[0]];
System.arraycopy(buffer, 1, tmp, 0, buffer[0]);
String result = new String(tmp);