使用Serial Java </cr>从传入数据中检测<cr>

时间:2012-05-06 15:24:45

标签: java serial-port

我有一个程序,它从缓冲区中获取字符以形成字符串。

我的节目是:

while (i < 5) {
    ch = inStream.read();
    buffer.append((char)ch);
    i++;
}
data = buffer.toString();

对于我上面的程序,我只能用5个字符组成一个字符串。我想要做的是有一个可变长度的字符串。字符串的长度取决于<CR>的检测。我使用的串行设备始终按<CR>终止数据。通过这样做,我的字符串可以有任何长度。

问题解决了。这是我尝试和完美的工作 - 假设300是我的最大值,我也想检测/ n。

我的代码:

while (i < 300) {
    ch = inStream.read();
    if ((ch=='\r')||(ch=='\n')) {
        i = 300;
    }
    buffer.append((char)ch);
    i++;
}
data = buffer.toString();

1 个答案:

答案 0 :(得分:2)

假设你的意思是<CR>“回车”,你应该使用BufferedReader

BufferedReader reader = new BufferedReader(inStream);
String line = null
while ((line = reader.readLine()) != null) {
    // do something with `line`

}