Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中清除BufferedReader_Java_Bufferedreader - Fatal编程技术网

如何在java中清除BufferedReader

如何在java中清除BufferedReader,java,bufferedreader,Java,Bufferedreader,要从串行端口读取数据,我使用inputStream,并对inputStream使用BufferedReader。每次读取后,我都要清除BufferedReader。在类BufferedReader下没有明确的方法。我试图使用reset(),但没有成功。这里有没有怪人对这个问题有什么建议?只是为了可读性-这是您在评论中发布的代码(带有str的附加定义) 是的,应该有用。无需“清除”或“重置”流或流阅读器。你从读者那里读到的所有东西都是“摘自它”,下次阅读时你不会再看到它 因此,如果您确实看到项目重

要从串行端口读取数据,我使用inputStream,并对inputStream使用
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()));