Klasa Java PipedReader

Klasa Java PipedReader

The Klasa PipedReader u Javi je dio java.io paket i koristi se za čitanje znakovnih podataka iz cijevi. Ova klasa omogućuje komunikaciju između niti gdje jedna nit zapisuje podatke pomoću PipedWriter-a, a druga ih čita pomoću PipedReader.

Značajke klase PipedReader:

  • Omogućuje čitanje podataka kroz cijev.
  • Koristi međuspremnik za pohranu podataka primljenih od PipedWritera.
  • Radi s PipedWriterom kako bi osigurao siguran prijenos podataka između niti.
  • Ako cijev pukne, javlja se pogreška.

Što je Pipe u Javi?

U Javi se cijev koristi za povezivanje dvije niti. Jedna se nit koristi za slanje podataka kroz cjevovod, a druga nit čita podatke. Ako nit koja šalje podatke stane ili se sruši, smatra se da je cijev prekinuta.

Deklaracija klase PipedReader

Deklaracija klase PipedReader je:

javna klasa PipedReader proširuje Reader

Sva implementirana sučelja:

  • Može se zatvoriti: Ovo se sučelje koristi za zatvaranje toka i oslobađanje resursa kada više nisu potrebni.
  • Automatsko zatvaranje: Ovo sučelje omogućuje automatsko upravljanje resursima u izjavama try-with-resources.
  • Čitljiv: Ovo sučelje omogućuje čitanje podataka iz toka.

Konstruktori PipedReadera

Ova klasa se sastoji od četiri konstruktora uz pomoć kojih objekt ove klase možemo kreirati na različite načine. Sljedeći su konstruktori dostupni u ovoj klasi:

1. PipedReader(): Ovaj konstruktor stvara PipedReader koji još nije povezan ni s jednim programom za pisanje.

Sintaksa:

javni PipedReader()


2. PipedReader(int Veličina cijevi): Ovaj konstruktor stvara PipedReader s određenom veličinom cijevi.

Sintaksa:

javni PipedReader(int pSize)


3. PipedReader(PipedWriter src): Ovaj konstruktor stvara PipedReader koji je povezan s PipedWriterStream src.

javni PipedReader(PipedWriter src)


4. PipedReader(PipedWriter src int pipeSize): Ovaj konstruktor stvara povezani PipedReader s određenom veličinom i povezan s danim PipedWriterom.

Sintaksa:

javni PipedReader(PipedWriter src int pSize)


Java PipedReaderMethods

Slika ispod pokazuje metode klase PipedReader.

io.PipedReader Klasa u Javi


Sada ćemo detaljno razmotriti svaku metodu jednu po jednu:

1. čitaj(): Ova se metoda koristi za dobivanje sljedećeg znaka iz PipedReader-a. Blokira se sve dok nema podataka za čitanje ako se ne pojavi pogreška.

Sintaksa:

public int read() izbacuje IOException

  • Parametar: Ova metoda ne uzima nikakve parametre.
  • Vrsta povrata:

Primjer:

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

Izlaz
Read: G Read: E Read: K  


2. read(char[] carray int offset int maxlen): Ova se metoda koristi za čitanje do maxlen znakova iz PipedReader Stream-a u niz znakova. Metoda se blokira ako se dosegne kraj streama ili se izbaci iznimka.

Sintaksa:

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

  • Parametar: Ova metoda uključuje tri parametra koji su navedeni u nastavku:
    • Carray: To je međuspremnik u koji će se podaci čitati.
    • pomak:
    • maxlen: Maksimalni broj znakova koji se mogu pročitati u nizu.
  • Vrsta povrata: Ova metoda vraća maxlen bajtova podataka kao cjelobrojnu vrijednost ili vraća -1 ako je dosegnut kraj toka

Primjer:

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

Izlaz
Read characters: GEKS 


3. zatvori(): Ova se metoda koristi za zatvaranje PipedReader-a.

Sintaksa:

public void close() izbacuje IOException

  • Parametar: Ova metoda ne uzima nikakve parametre
  • Vrsta povrata: Ova metoda ne vraća ništa

Primjer:

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

Izlaz
Stream closed.  


4. spreman():

Sintaksa:

public boolean ready() izbacuje IOException

  • Parametar: Ova metoda ne uzima nikakve parametre
  • Vrsta povrata: Ova metoda vraća true ako je tok spreman za čitanje, inače vraća false.

Primjer:

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

Izlaz
Stream is ready to be read: true  


5. zatvori(): Ova se metoda koristi za zatvaranje tokova PipedReader.

Sintaksa:

public void close()

  • Parametar: Ova metoda ne uzima nikakve parametre.
  • Vrsta povrata: Ova metoda ne vraća ništa.

Primjer:

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

Izlaz
Read: A Stream closed.  
Napravi kviz