Java PipedReader klasse

Java PipedReader klasse

De PipedReader klasse i Java er en del af java.io pakke, og den bruges til at læse karakterdata fra et rør. Denne klasse tillader kommunikation mellem tråde, hvor en tråd skriver data ved hjælp af en PipedWriter og en anden læser den ved hjælp af PipedReader.

Funktioner i PipedReader Class:

  • Det tillader læsning af data gennem et rør.
  • Den bruger en buffer til at gemme data modtaget fra PipedWriter.
  • Det fungerer med PipedWriter for at sikre, at data overføres sikkert mellem tråde.
  • Hvis røret går i stykker, giver det en fejl.

Hvad er et rør i Java?

I Java bruges et rør til at forbinde to tråde. Den ene tråd bruges til at sende data gennem røret, og den anden tråd læser dataene. Hvis tråden, der sender dataene, stopper eller går ned, anses røret for at være knækket.

Erklæring om PipedReader-klasse

Deklarationen for PipedReader-klassen er:

offentlig klasse PipedReader udvider Reader

Alle implementerede grænseflader:

  • Kan lukkes: Denne grænseflade bruges til at lukke streamen og frigive ressourcer, når de ikke længere er nødvendige.
  • Autolukbar: Denne grænseflade tillader automatisk ressourcestyring i prøv-med-ressourcer-sætninger.
  • Læselig: Denne grænseflade gør det muligt at læse data fra streamen.

Konstruktører af PipedReader

Denne klasse består af fire konstruktører, ved hjælp af hvilke vi kan skabe objekter for denne klasse på forskellige måder. Følgende er konstruktørerne tilgængelige i denne klasse:

1. PipedReader(): Denne konstruktør opretter en PipedReader, der endnu ikke er forbundet med nogen forfatter.

Syntaks:

offentlig PipedReader()


2. PipedReader(int pipeSize): Denne konstruktør opretter aPipedREader med en specificeret rørstørrelse.

Syntaks:

offentlig PipedReader(int pSize)


3. PipedReader(PipedWriter src): Denne konstruktør opretter en PipedReader, der er forbundet til PipedWriterStream src.

offentlig PipedReader(PipedWriter src)


4. PipedReader(PipedWriter src int pipeSize): Denne konstruktør opretter en tilsluttet PipedReader med en specificeret størrelse og linket til den givne PipedWriter.

Syntaks:

offentlig PipedReader(PipedWriter src int pSize)


Java PipedReaderMethods

Billedet nedenfor viser metoderne i PipedReader-klassen.

io.PipedReader klasse i Java


Nu skal vi diskutere hver metode en efter en i detaljer:

1. læs(): Denne metode bruges til at hente det næste tegn fra PipedReader. Den blokerer, indtil der er data at læse, hvis der opstår en fejl.

Syntaks:

public int read() kaster IOException

  • Parameter: Denne metode tager ikke nogen parameter.
  • Returtype: Denne metode returnerer det næste tegn som et heltal eller returnerer -1, hvis slutningen af ​​strømmen nås.

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

Produktion
Read: G Read: E Read: K  


2. read(char[] carray int offset int maxlen): Denne metode bruges til at læse op til maxlen-tegn fra PipedReader Stream til karakterarrayet. Metoden blokerer, hvis slutningen af ​​Stream nås, eller en undtagelse kastes.

Syntaks:

public int read(char[] carray int offset int maxlen) kaster IOException

  • Parameter: Denne metode omfatter tre parametre, som er angivet nedenfor:
    • bære: Det er bufferen, som dataene vil blive læst ind i.
    • offset: Det er startpositionen i arrayet
    • maxlen: Det maksimale antal tegn, der skal læses ind i arrayet.
  • Returtype: Denne metode returnerer maxlen bytes af dataene, når en heltalsværdi eller returnering -1 er slutningen af ​​streamen nås

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

Produktion
Read characters: GEKS 


3. luk(): Denne metode bruges til at lukke PipedReader.

Syntaks:

public void close() kaster IOException

  • Parameter: Denne metode tager ikke nogen parameter
  • Returtype: Denne metode returnerer ikke noget

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

Produktion
Stream closed.  


4. klar(): Denne metode bruges til at kontrollere, om streamen er klar til at blive læst.

Syntaks:

public boolean ready() kaster IOException

  • Parameter: Denne metode tager ikke nogen parameter
  • Returtype: Denne metode returnerer sand, hvis strømmen er klar til at blive læst, ellers returnerer den falsk.

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

Produktion
Stream is ready to be read: true  


5. luk(): Denne metode bruges til at lukke PipedReader-strømmene.

Syntaks:

public void close()

  • Parameter: Denne metode tager ikke nogen parameter.
  • Returtype: Denne metode returnerer ikke noget.

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

Produktion
Read: A Stream closed.  
Opret Quiz