(java)检测 InputStream 强制转换为 char 中的回车



所以我正在编写一个从串行端口获取输入的程序。 这样:

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文件,但没有多大帮助。在记事本中打开文件时,流数据显示为一行。但是,在我的文件资源管理器预览屏幕中,数据显示的方式与在我的控制台中的方式相同,每条单独的数据都有自己的行。

任何帮助,不胜感激。

您需要查找 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);
}

您必须转义反斜杠,否则它实际上会打印一个新的行/回车符并分解文本,当您真的希望它只打印rn时。如果您稍后必须重新阅读,则需要考虑到在文本中表示这些需要 2 个字符的事实。

最新更新