LineNumberReader — 줄 번호를 추적하는 버퍼 문자 입력 스트림
LineNumberReader — 줄 번호를 추적하는 버퍼 문자 입력 스트림
LineNumberReader는 줄 번호를 추적하는 버퍼링된 문자 입력 스트림이에요. 이 클래스는 현재 줄 번호를 설정하고 얻기 위한 setLineNumber(int)와 getLineNumber() 메서드를 정의합니다. 기본적으로 줄 번호는 0에서 시작하며, 데이터가 읽힐 때 줄 종결자마다 증가하고, 스트림의 마지막 문자가 줄 종결자가 아니면 스트림 끝에서도 증가해요.
본문
이 클래스는 java.io.Reader → java.io.BufferedReader를 상속하며 Closeable, AutoCloseable, Readable을 구현합니다.
setLineNumber(int)는 실제로 스트림의 현재 위치를 바꾸지 않고, getLineNumber()가 반환할 값만 바꾼다는 점에 주의하세요. 줄은 개행('\n'), 캐리지 리턴('\r'), 캐리지 리턴 바로 뒤 개행, 또는 이전 종결자 뒤의 종결자들, 스트림 끝, 또는 다른 종결자가 앞에 오지 않는 스트림 끝 중 하나로 종료되는 것으로 간주돼요.
생성자
LineNumberReader(Reader in)— 기본 크기의 버퍼를 사용하는 줄 번호 reader를 만들어요.LineNumberReader(Reader in, int sz)— 주어진 크기의 버퍼를 사용하는 줄 번호 reader를 만들어요.
메서드
int getLineNumber()— 현재 줄 번호를 얻어요.void setLineNumber(int lineNumber)— 현재 줄 번호를 설정해요.int read()— 단일 문자를 읽어요. 줄 종결자가 읽히거나 스트림 끝에 도달하고 마지막 문자가 줄 종결자가 아니면 줄 번호가 증가해요.int read(char[] cbuf, int off, int len)— 문자를 배열의 일부로 읽어요.String readLine()— 텍스트 한 줄을 읽어요. 줄 종결자는 제외한 내용이 반환돼요.void mark(int readAheadLimit)— 스트림의 현재 위치를 표시해요.void reset()— 스트림을 가장 최근의 마크로 재설정해요.close,lines,markSupported,ready는BufferedReader에서 상속받아요.
LineNumberReader는 로그 파일을 읽으며 줄 번호를 추적하거나 오류 메시지에 줄 위치를 표시해야 할 때 유용해요.