BufferedReader 클래스의 readLine() 메쏘드 사용중 오류입니다.
글쓴이: vudghkzm / 작성시간: 화, 2005/04/26 - 4:57오후
아래는 예제 코드입니다.
import java.io.*;
public final class Test
{
public static void main( String args[] )
{
Print();
Print();
}
private static void Print()
{
System.out.print( "input : " );
InputStreamReader ir = new InputStreamReader( System.in );
BufferedReader br = new BufferedReader( ir );
String input = null;
try
{
input = br.readLine();
br.close();
ir.close();
}
catch( IOException e )
{
e.printStackTrace();
System.exit( -1 );
}
}
}
실행결과는 아래와 같습니다.
input : asdf
input : java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
at java.io.BufferedInputStream.read(BufferedInputStream.java:304)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at Test.Print(Test.java:20)
at Test.main(Test.java:8)
왜 두번째로 Print(); 를 부르면 stream closed 예외가 발생하는지 궁금하네요. 그리고 해결 방법도 알려주세요.
Forums:


private static void Print()->
private static void Print()
->
private void Print()
왜 static 으로 하면 저런 오류가 생기는지 잘 이해가 안 갑니다
왜 static 으로 하면 저런 오류가 생기는지 잘 이해가 안 갑니다. 설명 부탁드려도 될까요?
댓글 달기