Třída Java PipedReader

Třída Java PipedReader

The Třída PipedReader v Javě je součástí java.io balíček a používá se ke čtení znakových dat z roury. Tato třída umožňuje komunikaci mezi vlákny, kde jedno vlákno zapisuje data pomocí PipedWriter a druhé je čte pomocí PipedReader.

Vlastnosti třídy PipedReader:

  • Umožňuje čtení dat potrubím.
  • K ukládání dat přijatých z PipedWriter používá vyrovnávací paměť.
  • Pracuje s PipedWriter, aby se ujistil, že data jsou bezpečně přenášena mezi vlákny.
  • Pokud se potrubí rozbije, vyvolá chybu.

Co je to Pipe v Javě?

V Javě se k propojení dvou vláken používá roura. Jedno vlákno se používá k odesílání dat potrubím a druhé vlákno čte data. Pokud se vlákno, které odesílá data, zastaví nebo zhroutí, potrubí je považováno za přerušené.

Deklarace třídy PipedReader

Deklarace třídy PipedReader je:

public class PipedReader rozšiřuje Reader

Všechna implementovaná rozhraní:

  • Uzavíratelné: Toto rozhraní se používá k uzavření streamu a uvolnění zdrojů, když již nejsou potřeba.
  • Automatické zavírání: Toto rozhraní umožňuje automatickou správu prostředků v příkazech try-with-resources.
  • Čitelný: Toto rozhraní umožňuje čtení dat ze streamu.

Konstruktéři PipedReader

Tato třída se skládá ze čtyř konstruktorů, pomocí kterých můžeme různými způsoby vytvořit objekt této třídy. V této třídě jsou k dispozici následující konstruktory:

1. PipedReader(): Tento konstruktor vytvoří PipedReader, který ještě není připojen k žádnému zapisovači.

Syntax:

public PipedReader()


2. PipedReader (int pipeSize): Tento konstruktor vytvoří aPipedREader se zadanou velikostí kanálu.

Syntax:

public PipedReader (int pSize)


3. PipedReader (PipedWriter src): Tento konstruktor vytvoří PipedReader, který je připojen k PipedWriterStream src.

public PipedReader (PipedWriter src)


4. PipedReader (PipedWriter src int pipeSize): Tento konstruktor vytvoří připojený PipedReader se zadanou velikostí a propojený s daným PipedWriter.

Syntax:

public PipedReader (PipedWriter src int pSize)


Metody Java PipedReader

Obrázek níže ukazuje metody třídy PipedReader.

Třída io.PipedReader v Javě


Nyní budeme diskutovat o každé metodě jednu po druhé podrobně:

1. číst(): Tato metoda se používá k získání dalšího znaku z PipedReader. Blokuje se, dokud nejsou k dispozici data ke čtení nebo dojde k chybě.

Syntax:

public int read() vyvolá IOException

  • Parametr: Tato metoda nebere žádný parametr.
  • Typ vrácení: Tato metoda vrátí další znak jako celé číslo nebo vrátí -1, pokud je dosaženo konce proudu.

Příklad:

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  ());         }   }   

Výstup
Read: G Read: E Read: K  


2. read(char[] carray int offset int maxlen): Tato metoda se používá ke čtení až maxlen znaků z PipedReader Stream do pole znaků. Metoda se zablokuje, pokud je dosaženo konce streamu nebo je vyvolána výjimka.

Syntax:

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

  • Parametr: Tato metoda zahrnuje tři parametry, které jsou uvedeny níže:
    • carray: Je to vyrovnávací paměť, do které se budou načítat data.
    • offset: Je to výchozí pozice v poli
    • maxlen: Maximální počet znaků, které mají být načteny do pole.
  • Typ vrácení: Tato metoda vrátí maxlen bajtů dat jako celočíselnou hodnotu nebo vrátí -1 při dosažení konce toku

Příklad:

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  );         }      }   }   

Výstup
Read characters: GEKS 


3. zavřít(): Tato metoda se používá k uzavření PipedReader.

Syntax:

public void close() vyvolá IOException

  • Parametr: Tato metoda nebere žádný parametr
  • Typ vrácení: Tato metoda nic nevrací

Příklad:

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.'  );      }   }   

Výstup
Stream closed.  


4. připraven(): Tato metoda se používá ke kontrole, zda je stream připraven ke čtení.

Syntax:

public boolean ready() vyvolá IOException

  • Parametr: Tato metoda nebere žádný parametr
  • Typ vrácení: Tato metoda vrátí hodnotu true, pokud je proud připraven ke čtení, jinak vrátí hodnotu false.

Příklad:

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  ());      }   }   

Výstup
Stream is ready to be read: true  


5. zavřít(): Tato metoda se používá k uzavření proudů PipedReader.

Syntax:

public void close()

  • Parametr: Tato metoda nebere žádný parametr.
  • Typ vrácení: Tato metoda nic nevrací.

Příklad:

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  ();      }      }   }   

Výstup
Read: A Stream closed.  
Vytvořit kvíz