logo

Trieda Java PipedWriter

The Trieda PipedWriter v jazyku Java umožňuje dvom vláknam vzájomnú komunikáciu prenosom údajov cez potrubie. Táto trieda je užitočná, keď chceme, aby jedna časť programu posielala dáta inej časti bez ich uloženia do pamäte.

Vlastnosti triedy PipedWriter:

  • Umožňuje zapisovanie údajov do potrubia.
  • Používa vyrovnávaciu pamäť na dočasné uloženie údajov pred ich odoslaním do PipedReader.
  • Spolupracuje s PipedReaderom na zaistenie bezpečného prenosu dát medzi vláknami.
  • Ak sa potrubie zlomí, vyvolá chybu.

Vyhlásenie PipedWriter v Jave

Vyhlásenie triedy PipedWriter je:



public class PipedWriter rozširuje Writer

Všetky implementované rozhrania:

  • Uzatvárateľné: Toto rozhranie používajú triedy, ktoré manipulujú so zdrojmi.
  • Splachovateľné: Toto rozhranie sa používa na vyprázdnenie údajov na miesto určenia.
  • Pripojiteľné: Toto rozhranie sa používa na pripojenie údajov k existujúcemu streamu.
  • Automatické zatváranie: Toto rozhranie umožňuje automatické zatváranie zdrojov.

Konštruktory v triede PipedWriter

Táto trieda pozostáva z dvoch konštruktorov, pomocou ktorých môžeme vytvárať objekty tejto triedy rôznymi spôsobmi. V tejto triede sú dostupné nasledujúce konštruktory:

1. PipedWriter(): Tento konštruktor sa používa na vytvorenie PipedWriter, ktorý ešte nie je k ničomu pripojený.

Syntax:

PipedWriter()

Príklad:

Java
// Demonstrating the working // of PipedWriter() import java.io.*; class Geeks {  public static void main(String[] args) {    // Create PipedWriter and PipedReader  PipedWriter w = new PipedWriter();  PipedReader r = new PipedReader();  try {  // Connect the PipedWriter to the PipedReader  w.connect(r);  // Create a thread to write data into the pipe  Thread writerThread = new Thread(new Runnable() {  public void run() {  try {  w.write('Hello from PipedWriter!');  w.close();  } catch (IOException e) {  e.printStackTrace();  }  }  });  // Create a thread to read data from the pipe  Thread readerThread = new Thread(new Runnable() {  public void run() {  try {  int data;  while ((data = r.read()) != -1) {  System.out.print((char) data);  }  r.close();  } catch (IOException e) {  e.printStackTrace();  }  }  });  // Start both threads  writerThread.start();  readerThread.start();  // Wait for both threads to finish  writerThread.join();  readerThread.join();  } catch (IOException | InterruptedException e) {  e.printStackTrace();  }  } } 

Výstup
Hello from PipedWriter!


2. PipedWriter (PipedReader inStream): Tento konštruktor, ktorý sme použili na vytvorenie PipedWriter a pripojil ho k PipedReader.

Syntax:

PipedWriter (PipedReader snk)

Príklad:

Java
// Demonstrating the working  // PipedWriter(PipedReader snk) import java.io.*; public class Geeks {  public static void main(String[] args) {  try {  // Create a PipedReader and a PipedWriter  PipedReader r = new PipedReader();  PipedWriter w = new PipedWriter(r);   // Create a thread to write data to the PipedWriter  Thread writerThread = new Thread(() -> {  try {  w.write('Hello PipedWriter');  w.close();   } catch (IOException e) {  e.printStackTrace();  }  });  // Create a thread to read data from the PipedReader  Thread readerThread = new Thread(() -> {  try {  int data;  while ((data = r.read()) != -1) {  System.out.print((char) data);   }  } catch (IOException e) {  e.printStackTrace();  }  });  // Start both threads  writerThread.start();  readerThread.start();  // Wait for both threads to finish  writerThread.join();  readerThread.join();  } catch (IOException | InterruptedException e) {  e.printStackTrace();  }  } } 

Výstup
Hello PipedWriter


Metódy Java PipedWriter

Obrázok nižšie ukazuje metódy triedy PipedWriter.

Trieda io.PipedWriter v jazyku Java' title=


Teraz budeme diskutovať o každej metóde jeden po druhom podrobne:

1. napíšte (int char): Táto metóda sa používa na zápis jedného znaku do potrubia.

Syntax:

normalizácia v databáze

public void write (int char)

  • Parameter: Táto metóda má jeden parameter, ktorý predstavuje znak, ktorý sa má zapísať.
  • Výnimka: Táto metóda vráti IOException, ak sa vyskytne problém s I/O operáciou.


2. write(char[] carray int offset int maxlen): Táto metóda sa používa na zápis znakov z poľa do potrubia.

Syntax:

public void write(char[] carray int offset int maxlen)

  • Parameter: Táto metóda zahŕňa tri parametre, ktoré sú uvedené nižšie:
    • carray: Je to pole znakov, ktoré obsahuje údaje
    • posun: Je to pozícia v poli, kde začať písať formulár
    • maxlen: Je to maximálny počet znakov na napísanie.
  • Výnimka: Táto metóda vráti IOException, ak sa vyskytne problém s I/O operáciou.


3. pripojiť (cieľ PipedReader): Táto metóda sa používa na pripojenie PipedWriter k PipedReader.

Syntax:

public void connect (destinácia PipedReader)

  • Parameter: Táto metóda má cieľ s jedným parametrom, ktorým je PipedReader, ku ktorému sa PipedWriter pripojí na prenos údajov.
  • Výnimka: Táto metóda vyvolá IOException, ak sa pri pripájaní vyskytne chyba.


4. flush(): Táto metóda sa používa na preplachovanie údajov v potrubí.

Syntax:

public void flush()

  • Parameter: Táto metóda neberie žiadny parameter.
  • Výnimka: Táto metóda vyvolá výnimku IOException, ak sa vyskytne chyba počas vyprázdnenia údajov.


5. zavrieť(): Táto metóda sa používa na zatvorenie PipedWriter.

Synatx:

ridhima tiwari

public void close()

  • Parameter: Táto metóda neberie žiadny parameter.
  • Výnimka: Táto metóda vyvolá IOException, ak sa vyskytne problém so zatvorením zapisovača.


Teraz budeme diskutovať o tom, ako môžeme použiť triedu PipedWriter na zapisovanie údajov a ich čítanie cez pripojený PipedReader

Príklad:

Java
// Demonstrating how to use PipedReader  // and PipedWriter to transferr an array  // of characters between two threads 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); // Must connect before use   // Writing a char array   char[] c = {'J' 'A' 'V' 'A'};   w.write(c 0 4);   // Reading blocks if no data is written yet  System.out.print('Output from the pipe:');   for (int i = 0; i < 4; i++) {   System.out.print(' ' + (char) r.read());   }   w.close();   r.close();   }  } 

Výstup
Output from the pipe: J A V A



Program Java ilustrujúci fungovanie metód triedy PipedWriter

Teraz napíšeme, že niektoré znaky vyprázdnia výstup a zatvoríme zapisovač.

Príklad:

Java
// Java program illustrating the working of PipedWriter  // write() connect  // close() flush() import java.io.*; public class Geeks {    public static void main(String[] args) throws IOException {  PipedReader r = new PipedReader();  PipedWriter w = new PipedWriter();  try {  // Use of connect(): Connecting the writer to the reader  r.connect(w);  // Use of write(int byte): Writing characters to the pipe  w.write(71);   w.write(69);  w.write(69);  w.write(75);  w.write(83);   // Use of flush() method: Flushing the output to   // make sure all data is written  w.flush();  System.out.println('Output after flush():');  // Reading from the pipe  for (int i = 0; i < 5; i++) {  System.out.print(' ' + (char) r.read());  }  // Use of close() method: Closing the writer  System.out.println('nClosing the Writer stream');  w.close();  } catch (IOException e) {  e.printStackTrace();  }  } } 

Výstup
Output after flush(): G E E K S Closing the Writer stream 
Vytvoriť kvíz