Java PipedReader osztály

Java PipedReader osztály

A PipedReader osztály Java nyelven része a java.io csomagot, és karakteradatok olvasására szolgál egy csőből. Ez az osztály lehetővé teszi a szálak közötti kommunikációt, ahol az egyik szál egy PipedWriter segítségével ír adatokat, a másik pedig olvassa be PipedReader.

A PipedReader osztály jellemzői:

  • Lehetővé teszi az adatok csövön keresztüli olvasását.
  • Puffert használ a PipedWritertől kapott adatok tárolására.
  • A PipedWriterrel együttműködve biztosítja az adatok biztonságos átvitelét a szálak között.
  • Ha a cső eltörik, hibát jelez.

Mi az a Pipe a Java nyelven?

A Java nyelvben egy pipet használnak két szál összekapcsolására. Az egyik szál arra szolgál, hogy adatokat küldjön a csövön keresztül, a másik szál pedig olvassa az adatokat. Ha az adatot küldő szál leáll vagy összeomlik, akkor a cső megszakadtnak minősül.

Nyilatkozat a PipedReader osztályról

A PipedReader osztály nyilatkozata a következő:

nyilvános osztály A PipedReader kiterjeszti a Readert

Minden megvalósított interfész:

  • Zárható: Ez a felület az adatfolyam bezárására és az erőforrások felszabadítására szolgál, amikor már nincs rá szükség.
  • Automatikus bezárás: Ez az interfész lehetővé teszi az automatikus erőforrás-kezelést a „try-with-resources” utasításokban.
  • Olvasható: Ez az interfész lehetővé teszi az adatok kiolvasását az adatfolyamból.

A PipedReader konstruktőrei

Ez az osztály négy konstruktorból áll, amelyek segítségével többféleképpen hozhatunk létre objektumokat ebből az osztályból. A következő konstruktorok állnak rendelkezésre ebben az osztályban:

1. PipedReader(): Ez a konstruktor létrehoz egy PipedReader-t, amely még nem kapcsolódik egyetlen íróhoz sem.

Szintaxis:

nyilvános PipedReader()


2. PipedReader(int pipeSize): Ez a konstruktor létrehozza az aPipedREader-t meghatározott csőmérettel.

Szintaxis:

nyilvános PipedReader(int pSize)


3. PipedReader(PipedWriter src): Ez a konstruktor létrehoz egy PipedReader-t, amely csatlakozik a PipedWriterStream src-hez.

nyilvános PipedReader (PipedWriter src)


4. PipedReader(PipedWriter src int pipeSize): Ez a konstruktor egy csatlakoztatott PipedReader-t hoz létre megadott mérettel és az adott PipedWriterhez kapcsolódik.

Szintaxis:


Java PipedReaderMethods

Az alábbi kép a PipedReader osztály metódusait mutatja be.

io.PipedReader osztály Java nyelven


Most az egyes módszereket részletesen tárgyaljuk:

1. olvasd (): Ez a módszer a következő karakter lekérésére szolgál a PipedReaderből. Addig blokkol, amíg nincs kiolvasható adat, vagy hiba nem történik.

Szintaxis:

A public int read() IOException-t dob

  • Paraméter: Ez a módszer nem igényel paramétereket.
  • Visszaküldés típusa: Ez a metódus a következő karaktert egész számként adja vissza, vagy -1-et ad vissza, ha elérjük a folyam végét.

Példa:

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

Kimenet
Read: G Read: E Read: K  


2. read(char[] carray int offset int maxlen): Ezt a módszert maxlen karakterek beolvasására használják a PipedReader Streamből a karaktertömbbe. A metódus blokkolja, ha eléri a Stream végét vagy kivételt dob.

Szintaxis:

public int read(char[] carray int offset int maxlen) IOExceptiont dob

  • Paraméter: Ez a módszer három paramétert tartalmaz, amelyeket az alábbiakban sorolunk fel:
    • carray: Ez az a puffer, amelybe az adatokat beolvassák.
    • eltolás: Ez a kiinduló pozíció a tömbben
    • maxlen: A tömbbe beolvasható karakterek maximális száma.
  • Visszaküldés típusa: Ez a metódus maximum bájtnyi adatot ad vissza egész számként, vagy -1-et ad vissza, ha elérjük a folyam végét

Példa:

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

Kimenet
Read characters: GEKS 


3. bezár(): Ez a módszer a PipedReader bezárására szolgál.

Szintaxis:

A public void close() IOExceptiont dob

  • Paraméter: Ez a módszer nem igényel paramétereket
  • Visszaküldés típusa: Ez a módszer nem ad vissza semmit

Példa:

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

Kimenet
Stream closed.  


4. kész(): Ezzel a módszerrel ellenőrizhető, hogy az adatfolyam készen áll-e az olvasásra.

Szintaxis:

Public Boolean ready() IOExceptiont dob

  • Paraméter: Ez a módszer nem igényel semmilyen paramétert
  • Visszaküldés típusa: Ez a metódus igazat ad vissza, ha az adatfolyam készen áll a beolvasásra, ellenkező esetben hamis értéket ad vissza.

Példa:

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

Kimenet
Stream is ready to be read: true  


5. bezár(): Ez a módszer a PipedReader adatfolyamok bezárására szolgál.

Szintaxis:

public void bezár()

  • Paraméter: Ez a módszer nem igényel semmilyen paramétert.
  • Visszaküldés típusa: Ez a módszer nem ad vissza semmit.

Példa:

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

Kimenet
Read: A Stream closed.  
Kvíz létrehozása