Método PushbackInputStream unread() en Java con ejemplos

El método unread() de la clase PushbackInputStream en Java es de tres tipos:

  1. El método no leído (int b) de la clase PushbackInputStream en Java se usa para retroceder un byte copiándolo al frente del búfer de retroceso. Después de revocar este método, cuando se lee el siguiente byte, tiene el valor igual al parámetro pasado.

    Sintaxis:

    public void unread(int b)
                throws IOException
    

    Parámetros: este método acepta un parámetro b que representa el valor entero que se va a retroceder.

    Valor devuelto : este método no devuelve ningún valor.

    Excepciones: este método lanza IOException si el flujo de entrada se cierra llamando al método close() de la misma clase o si no hay suficiente espacio en el búfer de retroceso para el byte.

    Los siguientes programas ilustran el método no leído (int) de la clase PushbackInputStream en el paquete IO:

    Programa 1:

    // Java program to illustrate
    // PushbackInputStream unread(int) method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create an array
            byte[] byteArray
                = new byte[] { 'G', 'E', 'E',
                               'K', 'S' };
      
            // Create inputStream
            InputStream inputStr
                = new ByteArrayInputStream(byteArray);
      
            // Create object of
            // PushbackInputStream
            PushbackInputStream pushbackInputStr
                = new PushbackInputStream(inputStr);
      
            for (int i = 0; i < byteArray.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
      
            // Call unread() method
            pushbackInputStr.unread(65);
      
            System.out.print(
                "\n"
                + (char)pushbackInputStr.read());
        }
    }
    Producción:

    GEEKS
    A
    

    Programa 2:

    // Java program to illustrate
    // PushbackInputStream unread() method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create an array
            byte[] byteArray
                = new byte[] { 'G', 'E', 'E', 'K', 'S',
                               'F', 'O', 'R', 'G', 'E',
                               'E', 'K', 'S' };
      
            // Create inputStream
            InputStream inputStr
                = new ByteArrayInputStream(byteArray);
      
            // Create object of
            // PushbackInputStream
            PushbackInputStream pushbackInputStr
                = new PushbackInputStream(inputStr);
      
            for (int i = 0; i < byteArray.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
      
            // Call unread() method
            pushbackInputStr.unread(90);
      
            System.out.print(
                "\n"
                + (char)pushbackInputStr.read());
        }
    }
    Producción:

    GEEKSFORGEEKS
    Z
    
  2. El método no leído (byte [] b) de la clase PushbackInputStream en Java se usa para retroceder una array de bytes copiándolos al frente del búfer de retroceso. Después de revocar este método, cuando se lee el siguiente byte, tiene el valor igual al primer elemento de la array de bytes.

    Sintaxis:

    public void unread(byte[] b)
                throws IOException
    

    Parámetros: este método acepta un parámetro b que representa la array de bytes que se va a retroceder.

    Valor devuelto : este método no devuelve ningún valor.

    Excepciones: este método lanza IOException si el flujo de entrada se cierra llamando al método close() de la misma clase o si no hay suficiente espacio en el búfer de retroceso para el byte de la array.

    Los siguientes programas ilustran el método no leído (byte []) de la clase PushbackInputStream en el paquete IO:

    Programa 1:

    // Java program to illustrate
    // PushbackInputStream unread(byte[]) method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create an array
            byte[] byteArray
                = new byte[] { 'G', 'E', 'E',
                               'K', 'S' };
      
            // Create inputStream
            InputStream inputStr
                = new ByteArrayInputStream(byteArray);
      
            // Create object of
            // PushbackInputStream
            PushbackInputStream pushbackInputStr
                = new PushbackInputStream(inputStr, 100);
      
            for (int i = 0; i < byteArray.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
      
            // Create byte array
            byte[] b = new byte[] { 'A', 'B', 'C' };
      
            // Call unread() method
            pushbackInputStr.unread(b);
      
            System.out.println();
      
            for (int i = 0; i < b.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
        }
    }
    Producción:

    GEEKS
    ABC
    

    Programa 2:

    // Java program to illustrate
    // PushbackInputStream unread(byte[]) method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create an array
            byte[] byteArray
                = new byte[] { 'G', 'E', 'E', 'K', 'S',
                               'F', 'O', 'R', 'G', 'E',
                               'E', 'K', 'S' };
      
            // Create inputStream
            InputStream inputStr
                = new ByteArrayInputStream(byteArray);
      
            // Create object of
            // PushbackInputStream
            PushbackInputStream pushbackInputStr
                = new PushbackInputStream(inputStr, 100);
      
            for (int i = 0; i < byteArray.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
      
            // Create byte array
            byte[] b = new byte[] { 'X', 'Y', 'Z' };
      
            // Call unread() method
            pushbackInputStr.unread(b);
      
            System.out.println();
      
            for (int i = 0; i < b.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
        }
    }
    Producción:

    GEEKSFORGEEKS
    XYZ
    
  3. El método no leído (byte[] b, int offset, int length) de la clase PushbackInputStream en Java se usa para retroceder una parte de una array de bytes copiándolo al frente del búfer de retroceso. Después de revocar este método, cuando se lee el siguiente byte, tiene el valor igual al primer elemento de la porción de la array de bytes dada.

    Sintaxis:

    public void unread(byte[] b,
                       int offset,
                       int length)
                throws IOException
    

    Parámetros: Este método acepta tres parámetros:

    • b : representa la array de bytes cuya parte se va a insertar.
    • offset : representa el índice inicial de la parte de la array de bytes.
    • longitud : representa la cantidad de bytes que se empujarán.

    Valor devuelto : este método no devuelve ningún valor.

    Excepciones: este método lanza IOException si el flujo de entrada se cierra llamando al método close() de la misma clase o si no hay suficiente espacio en el búfer de retroceso para el byte de la array.

    Los siguientes programas ilustran el método no leído (byte [], int, int) de la clase PushbackInputStream en el paquete IO:

    Programa 1:

    // Java program to illustrate
    // PushbackInputStream
    // unread(byte[], int, int) method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create an array
            byte[] byteArray
                = new byte[] { 'G', 'E', 'E',
                               'K', 'S' };
      
            // Create inputStream
            InputStream inputStr
                = new ByteArrayInputStream(byteArray);
      
            // Create object of
            // PushbackInputStream
            PushbackInputStream pushbackInputStr
                = new PushbackInputStream(inputStr, 100);
      
            for (int i = 0; i < byteArray.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
      
            // Create byte array
            byte[] b
                = new byte[] { 'A', 'B', 'C',
                               'D', 'E' };
      
            // Call unread() method
            pushbackInputStr.unread(b, 2, 3);
      
            System.out.println();
      
            for (int i = 0; i < 3; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
        }
    }
    Producción:

    GEEKS
    CDE
    

    Programa 2:

    // Java program to illustrate
    // PushbackInputStream
    // unread(byte[], int, int) method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create an array
            byte[] byteArray
                = new byte[] { 'G', 'E', 'E', 'K', 'S',
                               'F', 'O', 'R', 'G', 'E',
                               'E', 'K', 'S' };
      
            // Create inputStream
            InputStream inputStr
                = new ByteArrayInputStream(byteArray);
      
            // Create object of
            // PushbackInputStream
            PushbackInputStream pushbackInputStr
                = new PushbackInputStream(inputStr, 100);
      
            for (int i = 0; i < byteArray.length; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
      
            // Create byte array
            byte[] b = new byte[] { 'W', 'X', 'Y', 'Z' };
      
            // Call unread() method
            pushbackInputStr.unread(b, 1, 3);
      
            System.out.println();
      
            for (int i = 0; i < 3; i++) {
                System.out.print(
                    (char)pushbackInputStr.read());
            }
        }
    }
    Producción:

    GEEKSFORGEEKS
    XYZ
    

Referencias:
1. https://docs.oracle.com/javase/10/docs/api/java/io/PushbackInputStream.html#unread(int)
2. https://docs.oracle.com/javase/10/ docs/api/java/io/PushbackInputStream.html#unread(byte%5B%5D)
3. https://docs.oracle.com/javase/10/docs/api/java/io/PushbackInputStream.html#unread( byte%5B%5D, entero, entero)

Publicación traducida automáticamente

Artículo escrito por pp_pankaj 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 *