要从我的串行端口读取数据,我正在使用 inputStream 并BufferedReader
用于 inputStream。每次阅读后,我都想清除BufferedReader
. 在类下BufferedReader
没有明确的方法。我尝试使用reset()
但没有用。这里有任何极客就这个问题提出任何建议吗?
问问题
39131 次
2 回答
8
只是为了可读性 - 这是您在评论中发布的代码(带有 str 的附加定义)
DataInputStream inStream = null;
String str = null;
BufferedReader bufRd = new BufferedReader(new InputStreamReader(inStream));
while((str = bufRd.readLine()) != null){
System.out.println(str);
}
是的,它应该工作。无需“清除”或“重置” Stream 或 Streamreader。您从读者那里读到的所有内容都是“从中获取的”,下次阅读时您将不会再看到它。
因此,如果您确实看到项目重新出现在阅读器上(并且您还没有“自定义”阅读器本身),那么很可能您的数据源一次又一次地发送相同的数据。检查那个区域。
于 2009-12-02T08:27:38.400 回答
3
尝试创建一个新的缓冲区实例
BufferedReader br = new BufferedReader(newInputStreamReader(socket.getInputStream())); //create
String read = br.readLine(); //read line
br = new BufferedReader(newInputStreamReader(socket.getInputStream()));
我正在使用套接字通信,所以这里是套接字示例。我希望我帮助了你
于 2016-02-22T17:51:08.770 回答