BufferedReader에서 선을 읽고 코드가 읽은 데이터에서 개체를 만든 다음 처리를 위해이 코드를 보냅니다. 이것은 BufferedReader.readLine()이 null을 반환 할 때까지 계속됩니다 (파일 끝에 도달하거나 소켓이 닫힌 경우 등)BufferedReader.readLine()이 null을 미리 돌려 주는지 알 수 있습니까?
Iterable<MyObject>
을 구현하는이 클래스를 생성하는 것이 유용 할 수 있다고 생각 했으므로 이 같은
IObjectReader objectReader = new MyObjectReader(someBufferedReaderThatExists);
for (IObjectToProcess obj : objectReader) {
processTheObject(obj);
}
은 쉽게
IObjectToProcess
객체의 반환 다른 유형을 만들 수 있습니다 다른
IObjectReader
객체를 주입 할 수있다.
그러나 까다로운 비트는 Iterable.hasNext()
을 구현하고 있습니다. BufferedReader.readLine()
이 실제로 이것을 호출하지 않고 null
을 반환하는지 어떻게 알 수 있습니까?
(참고 : BufferedReader.ready()
대답하지 않습니다 : 그것은 null
을 반환하지 않으면 읽기가 차단됩니다 경우 그냥 날을 말한다)
먼저 다음을 읽지 않고 hasNext를 구현하는 방법이 있다고 생각하지 않습니다. 나는 확실히 틀릴 수 있었다. – Scotch