我正在使用 java comm 库来尝试完成对串行端口的简单读/写。我能够成功写入端口,并从输入流中捕获返回输入,但是当我从输入流中读取时,我只能读取 1 个字节(当我知道应该返回 11 个字节时)
我可以使用 Putty 成功写入端口,并在那里收到正确的返回字符串。我对 Java、缓冲区和串行 i/o 还很陌生,我认为可能有一些明显的语法或对数据如何返回到 InputStream 的理解。有人可以帮助我吗?谢谢!
case SerialPortEvent.DATA_AVAILABLE:
System.out.println("Data available..");
byte[] readBuffer = new byte[11];
try {
System.out.println("We trying here.");
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer, 1, 11);
System.out.println("Number of bytes read:" + numBytes);
}
System.out.println(new String(readBuffer));
} catch (IOException e) {System.out.println(e);}
break;
}
此代码返回以下输出:
Data available..
We trying here.
Number of bytes read:1
U