Java 我怎样才能知道串行端口上接收到的消息的长度?
InputStream inputFromPortJava 我怎样才能知道串行端口上接收到的消息的长度?,java,buffer,inputstream,Java,Buffer,Inputstream,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());
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的长度大于“Hello,world!”,如果我知道接收消息的大小,这样我就可以在该大小上初始化字节数组b,那就太好了检查
inputFromPort.read(b)的返回值代码>:
然后,您必须仅使用接收到的字节创建字符串,这是通过调用read()
实际写入的字节数组的一部分:
这样,在“你好,世界!”之后就不会有“盒子符号”
int readLength = inputFromPort.read(b);
String reading = new String(b, 0, readLength, "UTF-8");