【发布时间】:2017-06-21 19:01:20
【问题描述】:
所以我正在编写一个从串行端口获取输入的程序。 像这样:
String p = "COM3";
SerialPort in = SerialPort.getCommPort(p);
in.openPort();
InputStream d = in.getInputStream();
为了从 port.stream 中读取数据,我使用了以下代码
do
{
System.out.print((char)d.read());
counter++;
}while(counter < 303);
仅供参考:来自串行端口的数据来自条形码扫描仪,该程序的目的是扫描驾驶执照。
数据清晰易读,但似乎流中的某处有回车符或换行符,导致数据被分割成新行,这很好,但我想知道如何检测这些字符,以便我可以将每个新行/回车符解析为字符串/字符串数组条目。我进行了一些搜索,但找不到我正在寻找的答案。
我还尝试将流输出到 .txt 文件,但没有太大帮助。当您在记事本中打开文件时,流数据显示为一行。但是在我的文件浏览器预览屏幕中,数据显示了它在我的控制台中的方式,每条单独的数据都有自己的行。
感谢任何帮助。
【问题讨论】:
-
鉴于您有一个 char someChar = (char) d.read(),那么检测回车的唯一最佳选择就是检查 if( someChar == '\r') (CR=CARRIAGE_RETURN_CHARACTER) 或 if(someChar == '\n') (NL=NEWLINE_CHARACTER)
标签: java inputstream