Java PipedReader-klasse
De PipedReader-klassen i Java er en del av java.io pakken og den brukes til å lese tegndata fra en pipe. Denne klassen tillater inter-tråd kommunikasjon der en tråd skriver data ved hjelp av en PipedWriter og en annen leser den ved hjelp av PipedReader.
Funksjoner i PipedReader Class:
- Den tillater lesing av data gjennom et rør.
- Den bruker en buffer for å lagre data mottatt fra PipedWriter.
- Det fungerer med PipedWriter for å sikre at dataene overføres trygt mellom tråder.
- Hvis røret ryker gir det en feil.
Hva er et rør i Java?
I Java brukes et rør for å koble sammen to tråder. En tråd brukes til å sende data gjennom røret og den andre tråden leser dataene. Hvis tråden som sender dataene stopper eller krasjer, anses røret for å være ødelagt.
Erklæring om PipedReader-klasse
Erklæringen til PipedReader-klassen er:
offentlig klasse PipedReader utvider Reader
Alle implementerte grensesnitt:
- Kan lukkes: Dette grensesnittet brukes til å lukke strømmen og frigjøre ressurser når det ikke lenger er nødvendig.
- Autolukkbar: Dette grensesnittet tillater automatisk ressursadministrasjon i prøv-med-ressurser-setninger.
- Leselig: Dette grensesnittet lar data leses fra strømmen.
Konstruktører av PipedReader
Denne klassen består av fire konstruktører ved hjelp av hvilke vi kan lage objekt av denne klassen på forskjellige måter. Følgende er konstruktørene som er tilgjengelige i denne klassen:
1. PipedReader(): Denne konstruktøren lager en PipedReader som ikke er koblet til noen forfatter ennå.
Syntaks:
offentlig PipedReader()
2. PipedReader(int pipeSize): Denne konstruktøren lager aPipedREader med en spesifisert rørstørrelse.
Syntaks:
offentlig PipedReader (int pSize)
3. PipedReader(PipedWriter src): Denne konstruktøren oppretter en PipedReader som er koblet til PipedWriterStream src.
offentlig PipedReader (PipedWriter src)
4. PipedReader(PipedWriter src int pipeSize): Denne konstruktøren oppretter en tilkoblet PipedReader med en spesifisert størrelse og koblet til den gitte PipedWriter.
Syntaks:
offentlig PipedReader (PipedWriter src int pSize)
Java PipedReaderMethods
Bildet nedenfor viser metodene til PipedReader-klassen.
Nå skal vi diskutere hver metode en etter en i detalj:
1. les(): Denne metoden brukes til å hente neste tegn fra PipedReader. Den blokkerer til det er data å lese eller en feil oppstår.
Syntaks:
public int read() kaster IOException
- Parameter: Denne metoden tar ikke noen parameter.
- Returtype: Denne metoden returnerer det neste tegnet som et heltall eller returnerer -1 hvis slutten av strømmen er nådd.
Eksempel:
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 ()); } }
Produksjon
Read: G Read: E Read: K
2. read(char[] carray int offset int maxlen): Denne metoden brukes til å lese opp til maxlen-tegn fra PipedReader Stream til tegnarrayen. Metoden blokkerer hvis slutten av Stream nås eller unntak blir kastet.
Syntaks:
public int read(char[] carray int offset int maxlen) kaster IOException
- Parameter: Denne metoden inkluderer tre parametere som er oppført nedenfor:
- bære: Det er bufferen som dataene skal leses inn i.
- offset: Det er startposisjonen i matrisen
- maxlen: Maksimalt antall tegn som skal leses inn i matrisen.
- Returtype: Denne metoden returnerer makslen byte av dataene når en heltallsverdi eller returnerer -1 når slutten av strømmen er nådd
Eksempel:
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 ); } } }
Produksjon
Read characters: GEKS
3. lukk(): Denne metoden brukes til å lukke PipedReader.
Syntaks:
public void close() kaster IOException
- Parameter: Denne metoden tar ikke noen parameter
- Returtype: Denne metoden returnerer ikke noe
Eksempel:
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.' ); } }
Produksjon
Stream closed.
4. klar(): Denne metoden brukes til å sjekke om strømmen er klar til å leses.
Syntaks:
public boolean ready() kaster IOException
- Parameter: Denne metoden tar ikke noen parameter
- Returtype: Denne metoden returnerer true hvis strømmen er klar til å bli lest ellers returnerer den usann.
Eksempel:
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 ()); } }
Produksjon
Stream is ready to be read: true
5. lukk(): Denne metoden brukes til å lukke PipedReader-strømmene.
Syntaks:
public void close()
- Parameter: Denne metoden tar ikke noen parameter.
- Returtype: Denne metoden returnerer ikke noe.
Eksempel:
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 (); } } }
Produksjon
Read: A Stream closed.Lag quiz