InputStream inputFromPort;
try {
inputFromPort = serial.getInputStream(); //SerialPort
b=new byte[20];
inputFromPort.read(b);
reading=new String(b,"UTF-8");
System.out.println(reading.length());
System.out.println("new message: " + reading);
inputFromPort.close();
serial.close();
}
结果:新消息:你好,世界! - >这没关系 六盒符号 - >(我不能在这里复制)我知道它们出现'原因 b的长度大于“你好,世界!”,如果我知道接收到的消息的大小,那将是很好的,所以我可以在该大小上初始化字节数组b
答案 0 :(得分:2)
检查inputFromPort.read(b);
的返回值:
int readLength = inputFromPort.read(b);
然后你必须创建只接收字节的字符串,这是通过调用read()
实际写入的字节数组的一部分:
String reading = new String(b, 0, readLength, "UTF-8");
这样你就不会在“Hello,World!”之后出现“盒子符号”。