如何在java中清除BufferedReader
要从串行端口读取数据,我使用inputStream,并对inputStream使用如何在java中清除BufferedReader,java,bufferedreader,Java,Bufferedreader,要从串行端口读取数据,我使用inputStream,并对inputStream使用BufferedReader。每次读取后,我都要清除BufferedReader。在类BufferedReader下没有明确的方法。我试图使用reset(),但没有成功。这里有没有怪人对这个问题有什么建议?只是为了可读性-这是您在评论中发布的代码(带有str的附加定义) 是的,应该有用。无需“清除”或“重置”流或流阅读器。你从读者那里读到的所有东西都是“摘自它”,下次阅读时你不会再看到它 因此,如果您确实看到项目重
BufferedReader
。每次读取后,我都要清除BufferedReader
。在类BufferedReader
下没有明确的方法。我试图使用reset()
,但没有成功。这里有没有怪人对这个问题有什么建议?只是为了可读性-这是您在评论中发布的代码(带有str的附加定义)
是的,应该有用。无需“清除”或“重置”流或流阅读器。你从读者那里读到的所有东西都是“摘自它”,下次阅读时你不会再看到它
因此,如果您确实看到项目重新出现在读卡器上(并且您没有“自定义”读卡器本身),那么很可能是您的数据源一次又一次地发送相同的数据。检查该区域。尝试创建缓冲区的新实例
BufferedReader br = new BufferedReader(newInputStreamReader(socket.getInputStream())); //create
String read = br.readLine(); //read line
br = new BufferedReader(newInputStreamReader(socket.getInputStream()));
我使用套接字通信,所以这里是套接字示例。
我希望我能帮助你你说的清除缓冲区是什么意思?写入后,可以刷新缓冲区,但我不知道在读取后是否需要清除缓冲区;BufferedReader bufRd=新的BufferedReader(新的InputStreamReader(流内));在上面的代码中((str=bufRd.readLine())!=null){System.out.println(str);}时,每次执行readLine()时,我也会得到以前读取的内容。就像我第一次读“abc”,第二次读“abcdef”。但我只需要“def”,上面评论中的代码对我有效,不重复。这里是mine InputStream inStream=新文件InputStream(“c:\\LOGFILE.txt”);BufferedReader bufRd=新的BufferedReader(新的InputStreamReader(流内));while((str=bufRd.readLine())!=null){System.out.println(str);}
BufferedReader br = new BufferedReader(newInputStreamReader(socket.getInputStream())); //create
String read = br.readLine(); //read line
br = new BufferedReader(newInputStreamReader(socket.getInputStream()));