Método PushbackInputStream read() en Java con ejemplos

El método read() de la clase PushbackInputStream en Java es de dos tipos:

  1. El método read() de la clase PushbackInputStream en Java se usa para leer el siguiente byte de datos del flujo de entrada. Este método devuelve el byte de lectura del flujo de entrada en forma de número entero.

    Sintaxis:

    public int read()
              throws IOException
    

    Anulaciones: este método anula el método read() de la clase FilterInputStream .

    Parámetros: Este método no acepta ningún parámetro.

    Valor devuelto: este método devuelve el siguiente byte del flujo. Devuelve -1 si la transmisión finaliza.

    Excepciones: este método lanza IOException si el flujo de entrada se cierra llamando al método close() de la misma clase o si se produce un error de E/S.

    Los siguientes programas ilustran el método read() de la clase PushbackInputStream en el paquete IO:

    Programa 1:

    // Java program to illustrate
    // PushbackInputStream read() 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.println(
                    "Char : "
                    + (char)pushbackInputStr.read());
            }
        }
    }
    Producción:

    Char : G
    Char : E
    Char : E
    Char : K
    Char : S
    

    Programa 2:

    // Java program to illustrate
    // PushbackInputStream read() 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.println(
                    "Char : "
                    + (char)pushbackInputStr.read());
            }
        }
    }
    Producción:

    Char : G
    Char : E
    Char : E
    Char : K
    Char : S
    Char : F
    Char : O
    Char : R
    Char : G
    Char : E
    Char : E
    Char : K
    Char : S
    
  2. El método read(byte[], int, int) de la clase PushbackInputStream en Java se usa para leer bytes de datos dados del flujo de entrada en una array de bytes. Este método no lee un carácter a la vez, lee varios caracteres a la vez.

    Sintaxis:

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

    Anulaciones: este método anula el método read() de la clase FilterInputStream .

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

    • b : representa la array de bytes en la que se leen los datos.
    • offset : representa el índice de inicio en la array.
    • length – Representa el número de bytes a leer.

    Valor devuelto: este método devuelve el número total de bytes leídos. Devuelve -1 si la transmisión finaliza.

    Excepciones:

    • NullPointerException : este método arroja NullPointerException si la array de bytes es nula.
    • IndexOutOfBoundsException : este método genera una excepción IndexOutOfBoundsException si el desplazamiento es negativo, la longitud es negativa o la longitud es mayor que la diferencia entre la longitud de la array y el desplazamiento.
    • IOException : este método arroja una IOException si el flujo de entrada se cierra llamando al método close() de la misma clase o si se produce un error de E/S.

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

    Programa 1:

    // Java program to illustrate
    // PushbackInputStream
    // read(byte[], int, int) method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create buffer
            byte[] b = new byte[1024];
      
            // 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);
      
            pushbackInputStr.read(b, 0, 4);
      
            for (int i = 0; i < 4; i++) {
                System.out.print((char)b[i]);
            }
        }
    }
    Producción:

    GEEK
    

    Programa 2:

    // Java program to illustrate
    // PushbackInputStream
    // read(byte[], int, int) method
      
    import java.io.*;
      
    public class GFG {
        public static void main(String[] args)
            throws IOException
        {
      
            // Create buffer
            byte[] b = new byte[1024];
      
            // 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);
      
            pushbackInputStr.read(b, 8, 5);
      
            for (int i = 8; i < 13; i++) {
                System.out.print((char)b[i]);
            }
        }
    }
    Producción:

    GEEKS
    

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

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 *