Clase Java PipedReader

Clase Java PipedReader

El Clase PipedReader en Java es parte del java.io paquete y se utiliza para leer datos de caracteres de una tubería. Esta clase permite la comunicación entre subprocesos donde un subproceso escribe datos usando un PipedWriter y otro los lee usando

Características de la clase PipedReader:

  • Permite la lectura de datos a través de una tubería.
  • Utiliza un búfer para almacenar los datos recibidos de PipedWriter.
  • Funciona con PipedWriter para garantizar que los datos se transfieran de forma segura entre subprocesos.
  • Si la tubería se rompe arroja un error.

¿Qué es una tubería en Java?

En Java se utiliza una tubería para vincular dos subprocesos. Un hilo se utiliza para enviar datos a través de la tubería y el otro hilo lee los datos. Si el hilo que envía los datos se detiene o falla, se considera que la tubería está rota.

Declaración de clase PipedReader

La Declaración de la clase PipedReader es:

la clase pública PipedReader extiende Reader

Todas las interfaces implementadas:

  • Cerrable: Esta interfaz se utiliza para cerrar la transmisión y liberar recursos cuando ya no se necesitan.
  • Cierre automático: Esta interfaz permite la gestión automática de recursos en declaraciones de prueba con recursos.
  • Legible: Esta interfaz permite leer datos de la secuencia.

Constructores de PipedReader

Esta clase consta de cuatro constructores con la ayuda de los cuales podemos crear objetos de esta clase de diferentes maneras. Los siguientes son los constructores disponibles en esta clase:

1. Lector canalizado(): Este constructor crea un PipedReader que aún no está conectado a ningún escritor.

Sintaxis:

lector canalizado público()


2. PipedReader (int tamaño de tubería): Este constructor crea unPipedREader con un tamaño de tubería específico.

Sintaxis:

PipedReader público (int pSize)


3. PipedReader (PipedWriter origen): Este constructor crea un PipedReader que está conectado al src PipedWriterStream.

PipedReader público (PipedWriter src)


4. PipedReader (PipedWriter src int pipeSize): Este constructor crea un PipedReader conectado con un tamaño específico y vinculado al PipedWriter dado.

Sintaxis:

PipedReader público (PipedWriter src int pSize)


Métodos Java PipedReader

La siguiente imagen muestra los métodos de la clase PipedReader.

Clase io.PipedReader en Java


Ahora vamos a discutir cada método uno por uno en detalle:

1. leer(): Este método se utiliza para obtener el siguiente carácter de PipedReader. Se bloquea hasta que hay datos para leer o se produce un error.

Sintaxis:

public int read() lanza IOException

  • Parámetro: Este método no toma ningún parámetro.
  • Tipo de devolución: Este método devuelve el siguiente carácter como un número entero o devuelve -1 si se llega al final de la secuencia.

Ejemplo:

Java
   // Demonstrating the working    // of read() method   import     java.io.*  ;   public     class   GeeKs     {          public     static     void     main  (  String  []     args  )     throws     IOException     {          PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      // Connect the reader and writer      r  .  connect  (  w  );      // Write data to the PipedWriter      w  .  write  (  71  );         System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());         w  .  write  (  69  );         System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());         w  .  write  (  75  );         System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());         }   }   

Producción
Read: G Read: E Read: K  


2. leer(char[] carray int offset int maxlen): Este método se utiliza para leer hasta caracteres maxlen desde PipedReader Stream a la matriz de caracteres. El método se bloquea si se alcanza el final de Stream o se lanza una excepción.

Sintaxis:

public int read(char[] carray int offset int maxlen) lanza IOException

  • Parámetro: Este método incluye tres parámetros que se enumeran a continuación:
    • carray: Es el búfer en el que se leerán los datos.
    • compensar: Es la posición inicial en la matriz.
    • maxlen: El número máximo de caracteres que se leerán en la matriz.
  • Tipo de devolución: Este método devuelve un máximo de bytes de los datos como un valor entero o devuelve -1 si se alcanza el final de la secuencia.

Ejemplo:

Java
   // Demonstrating the working    // of read(char[] carray int offset int maxlen)    import     java.io.*  ;   public     class   Geeks     {          public     static     void     main  (  String  []     args  )     throws     IOException     {          PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      r  .  connect  (  w  );      // Write data to PipedWriter      w  .  write  (  71  );     // G      w  .  write  (  69  );     // E      w  .  write  (  75  );     // K      w  .  write  (  83  );     // S      // Read data into an array      char  []     b     =     new     char  [  5  ]  ;      r  .  read  (  b       0       5  );          System  .  out  .  print  (  'Read characters: '  );      for     (  char     c     :     b  )     {      System  .  out  .  print  (  c  );         }      }   }   

Producción
Read characters: GEKS 


3. cerrar(): Este método se utiliza para cerrar PipedReader.

Sintaxis:

  • Parámetro: Este método no toma ningún parámetro.
  • Tipo de devolución: Este método no devuelve nada.

Ejemplo:

Java
   // Demonstrating the working   // of close() method   import     java.io.*  ;   public     class   Geeks     {          public     static     void     main  (  String  []     args  )     throws     IOException     {          PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      r  .  connect  (  w  );      w  .  write  (  71  );         // Close the reader      r  .  close  ();      System  .  out  .  println  (  'Stream closed.'  );      }   }   

Producción
Stream closed.  


4. listo(): Este método se utiliza para comprobar si la transmisión está lista para ser leída.

Sintaxis:

booleano público listo () lanza IOException

  • Parámetro: Este método no toma ningún parámetro.
  • Tipo de devolución: Este método devuelve verdadero si la secuencia está lista para ser leída; de lo contrario, devuelve falso.

Ejemplo:

Java
   // Demonstrating the working   // of ready() method   import     java.io.*  ;   public     class   Geeks     {          public     static     void     main  (  String  []     args  )     throws     IOException     {          PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      r  .  connect  (  w  );      w  .  write  (  71  );         // Check if the stream is ready to be read      System  .  out  .  println  (  'Stream is ready to be read: '     +     r  .  ready  ());      }   }   

Producción
Stream is ready to be read: true  


5. cerrar(): Este método se utiliza para cerrar las transmisiones de PipedReader.

Sintaxis:

cierre de vacío público()

  • Parámetro: Este método no toma ningún parámetro.
  • Tipo de devolución: Este método no devuelve nada.

Ejemplo:

Java
   // Demonstrating the working   // of close() method   import     java.io.*  ;   public     class   Geeks  {          public     static     void     main  (  String  []     args  )     {          try     {      // Create a PipedReader and PipedWriter      PipedReader     r     =     new     PipedReader  ();      PipedWriter     w     =     new     PipedWriter  ();      // Connect the PipedReader to the PipedWriter      r  .  connect  (  w  );      // Write a character to the PipedWriter      w  .  write  (  'A'  );          // Read and print the character from the PipedReader      System  .  out  .  println  (  'Read: '     +     (  char  )     r  .  read  ());     // Output: A      // Close the PipedReader stream      r  .  close  ();      System  .  out  .  println  (  'Stream closed.'  );      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Producción
Read: A Stream closed.  
Crear cuestionario