Trieda Java PipedReader

Trieda Java PipedReader

The Trieda PipedReader v jazyku Java je súčasťou java.io balík a používa sa na čítanie znakových údajov z potrubia. Táto trieda umožňuje komunikáciu medzi vláknami, kde jedno vlákno zapisuje dáta pomocou PipedWriter a druhé ich číta pomocou PipedReader.

Vlastnosti triedy PipedReader:

  • Umožňuje čítanie údajov cez potrubie.
  • Používa vyrovnávaciu pamäť na ukladanie údajov prijatých z PipedWriter.
  • Spolupracuje s PipedWriter, aby sa zabezpečil bezpečný prenos údajov medzi vláknami.
  • Ak sa potrubie zlomí, vyvolá chybu.

Čo je to potrubie v jazyku Java?

V Jave sa na prepojenie dvoch vlákien používa potrubie. Jedno vlákno sa používa na odosielanie dát cez potrubie a druhé vlákno dáta číta. Ak sa vlákno, ktoré odosiela údaje, zastaví alebo zlyhá, potrubie sa považuje za prerušené.

Vyhlásenie o triede PipedReader

Vyhlásenie triedy PipedReader je:

public class PipedReader rozširuje Reader

Všetky implementované rozhrania:

  • Uzatvárateľné: Toto rozhranie sa používa na zatvorenie streamu a uvoľnenie zdrojov, keď už nie sú potrebné.
  • Automatické zatváranie: Toto rozhranie umožňuje automatickú správu zdrojov v príkazoch try-with-resources.
  • čitateľné: Toto rozhranie umožňuje čítanie údajov zo streamu.

Konštruktéri PipedReader

Táto trieda pozostáva zo štyroch konštruktorov, pomocou ktorých môžeme vytvárať objekt tejto triedy rôznymi spôsobmi. V tejto triede sú dostupné nasledujúce konštruktory:

1. PipedReader(): Tento konštruktor vytvorí PipedReader, ktorý ešte nie je pripojený k žiadnemu zapisovaču.

Syntax:

public PipedReader()


2. PipedReader (int pipeSize): Tento konštruktor vytvorí aPipedREader so špecifikovanou veľkosťou potrubia.

Syntax:

public PipedReader (int pSize)


3. PipedReader (PipedWriter src): Tento konštruktor vytvorí PipedReader, ktorý je pripojený k PipedWriterStream src.

public PipedReader (PipedWriter src)


4. PipedReader (PipedWriter src int pipeSize): Tento konštruktor vytvorí pripojený PipedReader so špecifikovanou veľkosťou a prepojený s daným PipedWriter.

Syntax:

public PipedReader (PipedWriter src int pSize)


Metódy Java PipedReader

Obrázok nižšie ukazuje metódy triedy PipedReader.

Trieda io.PipedReader v jazyku Java


Teraz budeme diskutovať o každej metóde jeden po druhom podrobne:

1. čítaj(): Táto metóda sa používa na získanie ďalšieho znaku z PipedReader. Zablokuje sa, kým nie sú k dispozícii údaje na čítanie alebo sa vyskytne chyba.

Syntax:

public int read() vyvolá IOException

  • Parameter: Táto metóda neberie žiadny parameter.
  • Typ návratu: Táto metóda vráti nasledujúci znak ako celé číslo alebo vráti -1, ak sa dosiahne koniec prúdu.

Prí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): Táto metóda sa používa na čítanie znakov až do maxlen zo streamu PipedReader do poľa znakov. Metóda sa zablokuje, ak sa dosiahne koniec streamu alebo sa vyvolá výnimka.

Syntax:

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

  • Parameter: Táto metóda zahŕňa tri parametre, ktoré sú uvedené nižšie:
    • carray: Je to vyrovnávacia pamäť, do ktorej sa budú načítavať dáta.
    • posun: Je to počiatočná pozícia v poli
    • maxlen: Maximálny počet znakov na načítanie do poľa.
  • Typ návratu: Táto metóda vráti maxlen bajtov údajov ako celočíselnú hodnotu alebo vráti -1, keď sa dosiahne koniec toku

Prí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. zavrieť(): Táto metóda sa používa na zatvorenie PipedReader.

Syntax:

public void close() vyvolá IOException

  • Parameter: Táto metóda neberie žiadny parameter
  • Typ návratu: Táto metóda nič nevracia

Prí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. pripravený(): Táto metóda sa používa na kontrolu, či je prúd pripravený na čítanie.

Syntax:

public boolean ready() vyvolá IOException

  • Parameter: Táto metóda neberie žiadny parameter
  • Typ návratu: Táto metóda vráti hodnotu true, ak je prúd pripravený na čítanie, inak vráti hodnotu false.

Prí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. zavrieť(): Táto metóda sa používa na zatvorenie tokov PipedReader.

Syntax:

public void close()

  • Parameter: Táto metóda neberie žiadny parameter.
  • Typ návratu: Táto metóda nič nevracia.

Prí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.  
Vytvoriť kvíz