同じメソッドで2つのクラスを使用してコンソールから入力を読み取ろうとしています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();
出力誤差
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? –