Java 我怎样才能知道串行端口上接收到的消息的长度?

Java 我怎样才能知道串行端口上接收到的消息的长度?,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());

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的长度大于“Hello,world!”,如果我知道接收消息的大小,这样我就可以在该大小上初始化字节数组b,那就太好了

检查
inputFromPort.read(b)的返回值

然后,您必须仅使用接收到的字节创建字符串,这是通过调用
read()
实际写入的字节数组的一部分:

这样,在“你好,世界!”之后就不会有“盒子符号”

 int readLength = inputFromPort.read(b);
String reading = new String(b, 0, readLength, "UTF-8");