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