줄 번호를 추적하는 버퍼링된 문자 입력 스트림입니다. 이 클래스는 각각 현재 줄 번호를 설정하고 가져오기 위한 setLineNumber(int) 및 getLineNumber() 메서드를 정의합니다.
기본적으로 줄 번호 지정은 0부터 시작합니다. 이 번호는 데이터를 읽을 때마다 줄 종결자마다 증가하며 setLineNumber(int)를 호출하여 변경할 수 있습니다.
그러나 setLineNumber(int)는 실제로 스트림의 현재 위치를 변경하지 않습니다. getLineNumber()에 의해 반환되는 값만 변경됩니다.
라인은 라인 피드('n'), 캐리지 리턴('r') 또는 라인 피드 바로 다음에 오는 캐리지 리턴 중 하나로 종료되는 것으로 간주됩니다.
생성자:
LineNumberReader(리더 입력) :
기본 입력 버퍼 크기를 사용하여 새로운 줄 번호 지정 판독기를 만듭니다.
LineNumberReader(정수 크기의 리더):
주어진 크기의 버퍼로 문자를 읽는 새로운 줄 번호 지정 판독기를 만듭니다. 방법:
int getLineNumber() :
Get the current line number.
Syntax : public int getLineNumber() Returns: The current line number
무효 표시(int readAheadLimit) :
Mark the present position in the stream.Subsequent calls to reset() will attempt to reposition the stream to this point and will also reset the line number appropriately.
Syntax : public void mark(int readAheadLimit) throws IOException Parameters: readAheadLimit - Limit on the number of characters that may be read while still preserving the mark. After reading this many characters attempting to reset the stream may fail. Throws: IOException
정수 읽기() :
Read a single character.Line terminators are compressed into single newline ('n') characters. Whenever a line terminator is read the current line number is incremented.
Syntax : public int read() throws IOException Returns: The character read or -1 if the end of the stream has been reached Throws: IOException
int read(char[] cbuf int off int len) :
Read characters into a portion of an array.Whenever a line terminator is read the current line number is incremented.
Syntax : public int read(char[] cbuf int off int len) throws IOException Parameters: cbuf - Destination buffer off - Offset at which to start storing characters len - Maximum number of characters to read Returns: The number of bytes read or -1 if the end of the stream has already been reached Throws: IOException
문자열 readLine() :
Read a line of text.Whenever a line terminator is read the current line number is incremented.
Syntax : public String readLine() throws IOException Returns: A String containing the contents of the line not including any line termination characters or null if the end of the stream has been reached Throws: IOException
무효 재설정() :
Reset the stream to the most recent mark.
Syntax : public void reset() throws IOException Throws: IOException
무효 setLineNumber(int lineNumber) :
Set the current line number.
Syntax : public void setLineNumber(int lineNumber) Parameters: lineNumber - An int specifying the line number
긴 건너뛰기(긴 n) :
Skip characters.
Syntax : public long skip(long n) throws IOException Parameters: n - The number of characters to skip Returns: The number of characters actually skipped Throws: IOException IllegalArgumentException
프로그램 : Java
//Java program demonstrating LineNumberReader methodsimportjava.io.FileReader;importjava.io.IOException;importjava.io.LineNumberReader;classLineNumberReaderDemo{publicstaticvoidmain(String[]args)throwsIOException{FileReaderfr=newFileReader('file.txt');LineNumberReaderlnr=newLineNumberReader(fr);charc[]=newchar[20];//illustrating setLineNumber()lnr.setLineNumber(0);//illustrating setSystem.out.println(lnr.getLineNumber());//illustrating markSupported() methodif(lnr.markSupported()){System.out.println('mark() method is supported');//illustrating mark methodlnr.mark(100);}/*File Contents * This is first line this is second line This is third line *///skipping 19 characterslnr.skip(19);//illustrating ready() methodif(lnr.ready()){//illustrating readLine() methodSystem.out.println(lnr.readLine());//illustrating read(char c[]int offint len)lnr.read(c);for(inti=0;i<20;i++){System.out.print(c[i]);}//illustrating reset() methodlnr.reset();for(inti=0;i<18;i++){//illustrating read() methodSystem.out.print((char)lnr.read());}intch;//illustrating read() methodSystem.out.println(lnr.readLine());while((ch=lnr.read())==1)System.out.print((char)ch);}//close the streamlnr.close();}}
출력 :
0 mark() method is supported this is second line This is third line This is first line