所以我正在编写一个从串口获取输入的程序。 像这样:
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);
fyi:来自串口的数据来自条码扫描器,该程序的目的是扫描驱动程序&#39;许可证。
数据清晰可读,但似乎流中有回车符或新行字符,导致数据被分成新行,这很好,但我想知道如何检测这些字符,以便我可以将每个新行/回车分析解析为字符串/字符串数组条目。我做了一些搜索,但我找不到我正在寻找的答案。
我也尝试将流输出到.txt文件,但没有多大帮助。在记事本中打开文件时,流数据显示为一行。但是在我的文件浏览器预览屏幕中,数据显示了它在我的控制台中的工作方式,每个单独的数据都有自己的行。
感谢任何帮助。
答案 0 :(得分:0)
您需要查找2个字符:新行\n
和回车\r
。
char next = (char)d.read();
if(next == '\r') {
System.out.print("\\r");
} else if(char == '\n') {
System.out.print("\\n");
} else {
System.out.print(next);
}
当你真的希望它只打印\r
或\n
时,你必须逃避反斜杠或它实际上会打印一个新的行/回车并分解文本。如果您以后必须阅读此内容,则需要说明在文本中用2个字符表示这些内容的事实。