Clasa Java PipedReader
The Clasa PipedReader în Java face parte din java.io pachet și este folosit pentru a citi datele de caractere dintr-un pipe. Această clasă permite comunicarea între fire în care un fir scrie date folosind un PipedWriter și altul le citește folosind PipedReader.
Caracteristici ale clasei PipedReader:
- Permite citirea datelor printr-o conductă.
- Utilizează un buffer pentru a stoca datele primite de la PipedWriter.
- Funcționează cu PipedWriter pentru a se asigura că datele sunt transferate în siguranță între fire.
- Daca teava se rupe, se produce o eroare.
Ce este o conductă în Java?
În Java, o conductă este folosită pentru a lega două fire. Un fir este folosit pentru a trimite date prin conductă, iar celălalt thread citește datele. Dacă firul care trimite datele se oprește sau se blochează, atunci conducta este considerată a fi ruptă.
Declarația clasei PipedReader
Declarația clasei PipedReader este:
clasa publică PipedReader extinde Reader
Toate interfețele implementate:
- Închidere: Această interfață este folosită pentru a închide fluxul și a elibera resurse atunci când nu mai sunt necesare.
- Închidere automată: Această interfață permite gestionarea automată a resurselor în instrucțiunile de încercare cu resurse.
- Citibil: Această interfață permite citirea datelor din flux.
Constructorii lui PipedReader
Această clasă este formată din patru constructori cu ajutorul cărora putem crea obiectul acestei clase în moduri diferite. Următorii sunt constructorii disponibili în această clasă:
1. PipedReader(): Acest constructor creează un PipedReader care nu este încă conectat la niciun writer.
Sintaxă:
Public PipedReader()
2. PipedReader(int pipeSize): Acest constructor creează aPipedREader cu o dimensiune specificată a conductei.
Sintaxă:
public PipedReader(int pSize)
3. PipedReader(PipedWriter src): Acest constructor creează un PipedReader care este conectat la PipedWriterStream src.
public PipedReader (PipedWriter src)
4. PipedReader(PipedWriter src int pipeSize): Acest constructor creează un PipedReader conectat cu o dimensiune specificată și legat la PipedWriter dat.
Sintaxă:
public PipedReader(PipedWriter src int pSize)
Java PipedReaderMethods
Imaginea de mai jos demonstrează metodele clasei PipedReader.
Acum vom discuta despre fiecare metodă una câte una în detaliu:
1. citeste(): Această metodă este folosită pentru a obține următorul caracter din PipedReader. Se blochează până când există date de citit sau apare o eroare.
Sintaxă:
public int read() aruncă IOException
- Parametru: Această metodă nu ia niciun parametru.
- Tip returnare: Această metodă returnează următorul caracter ca întreg sau returnează -1 dacă se ajunge la sfârșitul fluxului.
Exemplu:
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 ()); } }
Ieșire
Read: G Read: E Read: K
2. read(char[] carray int offset int maxlen): Această metodă este folosită pentru a citi până la maxlen caractere din PipedReader Stream în matricea de caractere. Metoda blochează dacă sfârșitul fluxului este atins sau se aruncă o excepție.
Sintaxă:
public int read(char[] carray int offset int maxlen) aruncă IOException
- Parametru: Această metodă include trei parametri care sunt enumerați mai jos:
- carray: Este tamponul în care vor fi citite datele.
- compensare: Este poziția de pornire în matrice
- maxlen: Numărul maxim de caractere care trebuie citite în matrice.
- Tip returnare: Această metodă returnează maxlen octeți de date ca valoare întreagă sau returnează -1 dacă se ajunge la sfârșitul fluxului
Exemplu:
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 ); } } }
Ieșire
Read characters: GEKS
3. închide(): Această metodă este folosită pentru a închide PipedReader.
Sintaxă:
public void close() aruncă IOException
- Parametru: Această metodă nu ia niciun parametru
- Tip returnare: Această metodă nu returnează nimic
Exemplu:
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.' ); } }
Ieșire
Stream closed.
4. gata(): Această metodă este utilizată pentru a verifica dacă fluxul este gata pentru a fi citit.
Sintaxă:
public boolean ready() aruncă IOException
- Parametru: Această metodă nu ia niciun parametru
- Tip returnare: Această metodă returnează true dacă fluxul este gata pentru a fi citit, altfel returnează false.
Exemplu:
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 ()); } }
Ieșire
Stream is ready to be read: true
5. închide(): Această metodă este folosită pentru a închide fluxurile PipedReader.
Sintaxă:
vid public close()
- Parametru: Această metodă nu ia niciun parametru.
- Tip returnare: Această metodă nu returnează nimic.
Exemplu:
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 (); } } }
Ieșire
Read: A Stream closed.Creați un test