logo

Třída Java PipedReader

The Třída PipedReader v Javě je součástí java.io balíček a používá se ke čtení znakových dat z roury. Tato třída umožňuje komunikaci mezi vlákny, kde jedno vlákno zapisuje data pomocí PipedWriter a druhé je čte pomocí PipedReader.

Vlastnosti třídy PipedReader:

  • Umožňuje čtení dat potrubím.
  • K ukládání dat přijatých z PipedWriter používá vyrovnávací paměť.
  • Pracuje s PipedWriter, aby se ujistil, že data jsou bezpečně přenášena mezi vlákny.
  • Pokud se potrubí rozbije, vyvolá chybu.

Co je to Pipe v Javě?

V Javě se k propojení dvou vláken používá roura. Jedno vlákno se používá k odesílání dat potrubím a druhé vlákno čte data. Pokud se vlákno, které odesílá data, zastaví nebo zhroutí, potrubí je považováno za přerušené.



Deklarace třídy PipedReader

Deklarace třídy PipedReader je:

public class PipedReader rozšiřuje Reader

Všechna implementovaná rozhraní:

  • Uzavíratelné: Toto rozhraní se používá k uzavření streamu a uvolnění zdrojů, když již nejsou potřeba.
  • Automatické zavírání: Toto rozhraní umožňuje automatickou správu prostředků v příkazech try-with-resources.
  • Čitelný: Toto rozhraní umožňuje čtení dat ze streamu.

Konstruktéři PipedReader

Tato třída se skládá ze čtyř konstruktorů, pomocí kterých můžeme různými způsoby vytvořit objekt této třídy. V této třídě jsou k dispozici následující konstruktory:

1. PipedReader(): Tento konstruktor vytvoří PipedReader, který ještě není připojen k žádnému zapisovači.

Syntax:

public PipedReader()


2. PipedReader (int pipeSize): Tento konstruktor vytvoří aPipedREader se zadanou velikostí kanálu.

Syntax:

public PipedReader (int pSize)


3. PipedReader (PipedWriter src): Tento konstruktor vytvoří PipedReader, který je připojen k PipedWriterStream src.

public PipedReader (PipedWriter src)


4. PipedReader (PipedWriter src int pipeSize): Tento konstruktor vytvoří připojený PipedReader se zadanou velikostí a propojený s daným PipedWriter.

kolik je 10 z 60

Syntax:

public PipedReader (PipedWriter src int pSize)


Metody Java PipedReader

Obrázek níže ukazuje metody třídy PipedReader.

Třída io.PipedReader v Javě' title=


Nyní budeme diskutovat o každé metodě jednu po druhé podrobně:

1. číst(): Tato metoda se používá k získání dalšího znaku z PipedReader. Blokuje se, dokud nejsou k dispozici data ke čtení nebo dojde k chybě.

Syntax:

public int read() vyvolá IOException

  • Parametr: Tato metoda nebere žádný parametr.
  • Typ vrácení: Tato metoda vrátí další znak jako celé číslo nebo vrátí -1, pokud je dosaženo konce proudu.

Pří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): Tato metoda se používá ke čtení až maxlen znaků z PipedReader Stream do pole znaků. Metoda se zablokuje, pokud je dosaženo konce streamu nebo je vyvolána výjimka.

Syntax:

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

  • Parametr: Tato metoda zahrnuje tři parametry, které jsou uvedeny níže:
    • carray: Je to vyrovnávací paměť, do které se budou načítat data.
    • offset: Je to výchozí pozice v poli
    • maxlen: Maximální počet znaků, které mají být načteny do pole.
  • Typ vrácení: Tato metoda vrátí maxlen bajtů dat jako celočíselnou hodnotu nebo vrátí -1 při dosažení konce toku

Pří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


horní index v ilustrátoru

3. zavřít(): Tato metoda se používá k uzavření PipedReader.

Syntax:

public void close() vyvolá IOException

  • Parametr: Tato metoda nebere žádný parametr
  • Typ vrácení: Tato metoda nic nevrací

Pří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. připraven(): Tato metoda se používá ke kontrole, zda je stream připraven ke čtení.

Syntax:

public boolean ready() vyvolá IOException

  • Parametr: Tato metoda nebere žádný parametr
  • Typ vrácení: Tato metoda vrátí hodnotu true, pokud je proud připraven ke čtení, jinak vrátí hodnotu false.

Pří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. zavřít(): Tato metoda se používá k uzavření proudů PipedReader.

Syntax:

public void close()

  • Parametr: Tato metoda nebere žádný parametr.
  • Typ vrácení: Tato metoda nic nevrací.

Pří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. 
Vytvořit kvíz