【发布时间】:2016-08-05 22:38:35
【问题描述】:
我正在尝试使用同一方法 InputStreamReader 和 BufferedReader 中的两个类从控制台读取输入。我已经关闭了前一类的流并再次读取输入,但现在使用后一类。如果我在调用 BufferedReader 流 read() 方法之前关闭前一个类流,则会显示错误。但是在方法结束时关闭 InputStreamReader 流时,它工作正常。
我的想法是 - 由于我已经关闭了前一个使用类的流,后一个流独立于它,因此不应该影响代码的运行。
public static void main(String[] args) throws Exception {
//File file = new File("D:\\IOSUMIT\\new_file.txt");
InputStreamReader isr= new InputStreamReader(System.in);
System.out.println("your input " + (char)isr.read());
isr.close(); //here error occurs
InputStreamReader isrp= new InputStreamReader(System.in); // Line 1
BufferedReader br = new BufferedReader(isrp);
int temp = br.read();
System.out.println("your input Buffered" + (char)temp);
br.close();
输出错误
4
your input 4Exception in thread "main" java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.read(Unknown Source)
at IO.Q7.main(Q7.java:60)
【问题讨论】:
-
" 显示错误 "stacktrace?
标签: java file io bufferedreader inputstreamreader