Reader rdr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(rdr);
String s;
s = br.readLine();
br.close();
Scanner sc = new Scanner(System.in);
s = sc.nextLine();
System.out.print(s);
我注意到,如果我关闭BufferedReader
,我将无法再从键盘插入输入,因为System.in
被关闭了。有没有办法我可以保持br.close()
(我需要这样做才能删除文件),然后再从键盘添加更多输入?
br
。 - Jon SkeetBufferedReader
读取到某个点,然后关闭BufferedReader
并从文件流中继续读取,那么您将会丢失一些字节。这些字节被缓冲读取器(为了缓冲)所消耗。您需要找到另一种方法。为什么需要从 Reader 子类转换为 Scanner?是因为某些 API 的限制吗?无论哪种情况,您都可以采用不同的方法,例如使用RandomAccessFile
和/或自定义 Scanner 子类,它也可以执行 Reader 的功能。 - Mark Jeronimus