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.
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