Un flujo de entrada de caracteres almacenado en búfer que realiza un seguimiento de los números de línea. Esta clase define los métodos setLineNumber(int) y getLineNumber() para establecer y obtener el número de línea actual, respectivamente.
- De manera predeterminada, la numeración de líneas comienza en 0. Este número aumenta en cada terminador de línea a medida que se leen los datos y se puede cambiar con una llamada a setLineNumber(int).
- Tenga en cuenta, sin embargo, que setLineNumber(int) en realidad no cambia la posición actual en la transmisión; solo cambia el valor que devolverá getLineNumber().
- Se considera que una línea termina con un salto de línea (‘\n’), un retorno de carro (‘\r’) o un retorno de carro seguido inmediatamente por un salto de línea.
Constructores :
- LineNumberReader(Reader in) : Crea un nuevo lector de numeración de líneas, utilizando el tamaño de búfer de entrada predeterminado.
- LineNumberReader(Reader in, int sz) : crea un nuevo lector de numeración de líneas, leyendo caracteres en un búfer del tamaño dado.
Métodos :
- int getLineNumber() : Obtiene el número de línea actual.
Syntax :public int getLineNumber() Returns: The current line number
- void mark(int readAheadLimit) : marca la posición actual en la secuencia. Las llamadas posteriores a reset() intentarán reposicionar la secuencia en este punto y también restablecerán el número de línea de manera adecuada.
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
- int read() : lee un solo carácter. Los terminadores de línea se comprimen en caracteres de nueva línea (‘\n’). Cada vez que se lee un terminador de línea, se incrementa el número de línea actual.
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) : lee caracteres en una parte de una array. Cada vez que se lee un terminador de línea, se incrementa el número de línea actual.
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
- String readLine() : lee una línea de texto. Cada vez que se lee un terminador de línea, se incrementa el número de línea actual.
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
- void reset() : Restablece la transmisión a la marca más reciente.
Syntax :public void reset() throws IOException Throws: IOException
- void setLineNumber(int lineNumber) : Establece el número de línea actual.
Syntax :public void setLineNumber(int lineNumber) Parameters: lineNumber - An int specifying the line number
- long skip(long n) : Saltar caracteres.
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
Programa :
//Java program demonstrating LineNumberReader methods import java.io.FileReader; import java.io.IOException; import java.io.LineNumberReader; class LineNumberReaderDemo { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("file.txt"); LineNumberReader lnr = new LineNumberReader(fr); char c[] = new char[20]; //illustrating setLineNumber() lnr.setLineNumber(0); //illustrating set System.out.println(lnr.getLineNumber()); //illustrating markSupported() method if(lnr.markSupported()) { System.out.println("mark() method is supported"); //illustrating mark method lnr.mark(100); } /*File Contents * This is first line this is second line This is third line */ //skipping 19 characters lnr.skip(19); //illustrating ready() method if(lnr.ready()) { //illustrating readLine() method System.out.println(lnr.readLine()); //illustrating read(char c[],int off,int len) lnr.read(c); for (int i = 0; i <20 ; i++) { System.out.print(c[i]); } //illustrating reset() method lnr.reset(); for (int i = 0; i <18 ; i++) { //illustrating read() method System.out.print((char)lnr.read()); } int ch; //illustrating read() method System.out.println(lnr.readLine()); while((ch = lnr.read())==1) System.out.print((char)ch); } //close the stream lnr.close(); } }
Producción :
0 mark() method is supported this is second line This is third line This is first line
Este artículo es una contribución de Nishant Sharma . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA