我正在使用BufferedReader.我只是想知道如何在每一行从键盘读取值后清除BufferedReader.我喜欢用
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String male = br.readLine();
Run Code Online (Sandbox Code Playgroud)
请帮帮我.
没有任何理由"清除"字符串"缓冲区".如果您担心内存使用,当JVM不再使用时,它将自动被JVM垃圾收集.
然而,
str = null;
Run Code Online (Sandbox Code Playgroud)
将有效地删除对String的引用.字符串是不可变的,因此您无法修改"缓冲区"并将其清除,您可以做的最好的方法是删除对它的引用,然后将其收集垃圾.
编辑
回答关于BufferedReaders的问题......
没有必要也没有办法"清除"BufferedReader.如果您遇到错误,您可以再次调用readLine(),之前您读过的任何内容都不会产生任何影响.如果你正在从文件中读取并获得异常,你应该检查你是否在文件的末尾,但是因为你正在读键盘,我建议你再次调用readLine().
清除缓冲区是没有意义的.
如果它是输出缓冲区,例如BufferedWriter,那么您可以刷新缓冲区以确保在关闭缓冲区之前已写入所有缓冲的内容.
在这种情况下,您可以在br.readLine()返回null之后关闭缓冲区,这意味着不再需要读取输入.