5

要从我的串行端口读取数据,我正在使用 inputStream 并BufferedReader用于 inputStream。每次阅读后,我都想清除BufferedReader. 在类下BufferedReader没有明确的方法。我尝试使用reset()但没有用。这里有任何极客就这个问题提出任何建议吗?

4

2 回答 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 回答