我有一个程序,它从缓冲区中获取字符以形成字符串。
我的节目是:
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();
答案 0 :(得分:2)
假设你的意思是<CR>
“回车”,你应该使用BufferedReader
:
BufferedReader reader = new BufferedReader(inStream);
String line = null
while ((line = reader.readLine()) != null) {
// do something with `line`
}