난 버퍼링 판독기에서 판독하는 다음 예를 가지고버퍼링 된 리더에서 어떻게 읽어야합니까?
while ((inputLine = input.readLine()) != null) {
System.out.println("I got a message from a client: " + inputLine);
}
일 (이 경우 input
) 버퍼링 리더에 나타날 때마다 루프 println
의 코드가 실행될 것이다. 내 경우에는 클라이언트 응용 프로그램이 소켓에 뭔가를 쓰면 서버 응용 프로그램의 루프에있는 코드가 실행됩니다.
하지만 어떻게 작동하는지 이해할 수 없습니다. inputLine = input.readLine()
은 버퍼링 된 리더에 무언가가 나타날 때까지 기다렸다가 무언가가 나타나면 true
을 반환하고 루프의 코드가 실행됩니다. 그러나 null
이 반환 될 수 있습니다.
또 다른 질문이 있습니다. 위의 코드는 throws Exception
이라는 메서드에서 가져온 것으로 Thread의 run 메서드에서이 코드를 사용합니다. 그리고 컴파일러가 run
전에 throws Exception
을 넣으려고하면 컴파일러에서 불평합니다. 재정의 된 메서드가 예외를 throw하지 않습니다. throws exception
이 없으면 나는 컴파일러로부터 또 다른 불평이있다 :보고되지 않는 예외. 그래서 내가 무엇을 할 수 있니?
@Roman - 당신은 거래를 알고 있습니다. 서로 다른 질문에 넣어 다른 질문! –
Stephen C, 추가 된 부분이 "버퍼 된 리더에서 어떻게 읽어야합니까?"의 일부라고 생각했습니다. 하지만 당신의 요점을 봅니다. 나는 추가 된 부분을 제거했다. – Roman