缓冲区到字符串

时间:2017-05-22 10:18:47

标签: java android string

我通过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 []

时没有工作

1 个答案:

答案 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);