Clase Java.io.PushbackReader en Java

io.PushbackReader Class in Java

java.io.PushbackReader es una clase lectora de secuencias de caracteres que permite que los caracteres vuelvan a insertarse en la secuencia.

Declaración:

public class PushbackReader
   extends FilterReader

Constructores :

  • PushbackReader (Reader push): crea un nuevo Pushback Reader: «push» con un búfer Pushback de caracteres.
  • PushbackReader(Reader push, int size) : Crea un nuevo Pushback Reader con un búfer Pushback de un tamaño particular.

Métodos de la clase PushbackReader:

  • read() : java.io.PushbackReader.read() lee un solo carácter.
    Sintaxis:
    public int read()
    Parameters :
    -----------
    Return : 
    reads single character from the Pushback buffer 
    else, -1 i.e. when end of file is reached.
    Exception :
    ->  IOException : If I/O error occurs.
  • read(char[] carray, int offset, int maxlen) : java.io.PushbackReader.read(char[] carray, int offset, int maxlen) lee una parte de la array de caracteres
    Sintaxis:
    public int read(char[] carray, int offset, int maxlen)
    Parameters :
    carray : destination buffer to be read into
    offset : starting position of the carray
    maxlen : maximum no. of characters to be read
    Return : 
    reads some portion of the character array
    else, -1 i.e. when end of file is reached.
    Exception :
    ->  IOException : If I/O error occurs.
  • close() : java.io.PushbackReader.close() cierra PushbackReader y libera los recursos del sistema asociados con este flujo a Garbage Collector.
    Sintaxis:
    public void close()
    Parameters :
    ------
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs.
  • mark(int arg) : java.io.PushbackReader.mark(int arg) marca la posición actual de PushbackReader. En el caso de PushbackReader, este método siempre lanza una excepción.
    Sintaxis:
    public void mark(int arg)
    Parameters :
    arg : integer specifying the read limit of the Stream
    Return : 
    void
  • skip(long char) : java.io.PushbackReader.skip(long char) salta y descarta ‘char’ no. de caracteres de los datos de PushbackReader.
    Sintaxis:
    public long skip(long char)
    Parameters : 
    char : no. of bytes of PushbackReader data to skip.
    Return : 
    no. of bytes to be skipped
    Exception: 
    -> IOException : in case I/O error occurs
  • reset() : java.io.PushbackReader.reset() es invocado por el método mark(). Reposiciona el PushbackReader en la posición marcada. En el caso de PushbackReader, este método siempre lanza una excepción.
    Sintaxis:
    public void reset()
    Parameters :
    ----
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs.
    
  • markSupported() : java.io.PushbackReader.markSupported() Indica si este flujo admite la operación mark(), que no es así.
    Sintaxis:
    public boolean markSupported()
    Parameters :
    -------
    Return : 
    true if PushbackReader supports the mark() method  else,false
  • ready() : java.io.PushbackReader.ready() indica si la secuencia está lista para ser leída o no
    Sintaxis :
    public boolean ready()
    Parameters :
    -------
    Return : 
    true if the stream is ready to be read else,false
  • unread(int char) : java.io.PushbackReader.unread(int char) empuja un solo carácter al búfer Pushback. El siguiente carácter que se leerá tendrá un valor (char)char, después de que este método regrese.

    Sintaxis:

    public void unread(int char)
    Parameters :
    char : int value of the character to be pushed back
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs or Pushback buffer is full.
    
  • unread(char[] carray) : java.io.PushbackReader.unread(char[] carray) empuja una array de caracteres al búfer Pushback. La array que se empuja tendrá su índice a partir de 0.
    Sintaxis:
    public void unread(char[] carray)
    Parameters :
    carray : character array to be pushed back
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs or Pushback buffer is full.
    
  • Código Java que explica el método PushbackReader: read(char[] carray), close(), markSupported(), read(), mark(), ready(), skip(), unread()

    // Java program illustrating the working of PushbackReader
    // read(char[] carray), close(), markSupported()
    // read(), mark(), ready(), skip(), unread()
      
    import java.io.*;
    public class NewClass
    {
        public static void main(String[] args) throws IOException
        {
            try
            {
                // Initializing a StringReader and PushbackReader
                String s = "GeeksForGeeks";
      
                StringReader str_reader = new StringReader(s);
                PushbackReader geek_pushReader1 = new PushbackReader(str_reader);
                PushbackReader geek_pushReader2 = new PushbackReader(str_reader);
      
                // Use of ready() method :
                System.out.println("Is stream1 ready : " + geek_pushReader1.ready());
                System.out.println("Is stream2 ready : " + geek_pushReader2.ready());
      
                // Use of read() :
                System.out.println("\nWe have used skip() method in 1 : ");
                System.out.print("\nUse of read() in 1 : ");
                for (int i = 0; i < 6; i++)
                {
                    char c = (char) geek_pushReader1.read();
                    System.out.print(c);
      
                    // Use of skip() :
                    geek_pushReader1.skip(1);
                }
                System.out.println("");
      
                // USing read() :
                char[] carray = new char[20];
                System.out.println("Using read() in 2 : " + geek_pushReader2.read(carray));
      
      
                // USe of markSupported() :
       System.out.println("\nIs mark supported in 1  : " + geek_pushReader1.markSupported());
      
                geek_pushReader2.unread('F');
      
                // read the next char, which is the one we unread
                char c3 = (char) geek_pushReader2.read();
                System.out.println("USe of unread() : " + c3);
      
                // USe of mark() :
                geek_pushReader1.mark(5);
      
                // Use of close() :
                geek_pushReader1.close();
      
            }
            catch (IOException excpt)
            {
                System.out.println("mark not supported in 1");
      
            }
        }
    }

    Producción :

Is stream1 ready : true
Is stream2 ready : true

We have used skip() method in 1 : 

Use of read() in 1 : GesoGe
Using read() in 2 : 1

Is mark supported in 1 : false
USe of unread() : F
mark not supported in 1

Este artículo es aportado por Mohit Gupta 🙂 . 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *