The Razred PipedWriter v Javi omogoča dvema nitima medsebojno komunikacijo s posredovanjem podatkov skozi cev. Ta razred je uporaben, ko želimo, da en del programa pošlje podatke drugemu delu, ne da bi jih shranil v pomnilnik.
rojen freddie mercury
Lastnosti razreda PipedWriter:
- Omogoča zapisovanje podatkov v cev.
- Uporablja medpomnilnik za začasno shranjevanje podatkov, preden jih pošlje v PipedReader.
- Deluje s PipedReaderjem, da zagotovi varen prenos podatkov med nitmi.
- Če se cev zlomi, se prikaže napaka.
Deklaracija PipedWriter v Javi
Deklaracija razreda PipedWriter je:
javni razred PipedWriter razširja Writer
Vsi implementirani vmesniki:
- Zapiranje: Ta vmesnik uporabljajo razredi, ki obravnavajo vire.
- Splaknjen: Ta vmesnik se uporablja za izpiranje podatkov na cilj.
- Dodatno: Ta vmesnik se uporablja za dodajanje podatkov obstoječemu toku.
- Samodejno zapiranje: Ta vmesnik omogoča samodejno zapiranje virov.
Konstruktorji v razredu PipedWriter
Ta razred je sestavljen iz dveh konstruktorjev, s pomočjo katerih lahko ustvarjamo objekte tega razreda na različne načine. V tem razredu so na voljo naslednji konstruktorji:
1. PipedWriter(): Ta konstruktor se uporablja za ustvarjanje PipedWriter, ki še ni povezan z ničemer.
Sintaksa:
PipedWriter()
primer:
pd.združitiJava
// 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(); } } }
Izhod
Hello from PipedWriter!
2. PipedWriter (PipedReader inStream): Ta konstruktor, ki smo ga uporabljali, da ustvari PipedWriter in ga poveže s PipedReaderjem.
Sintaksa:
PipedWriter(PipedReader snk)
primer:
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(); } } }
Izhod
Hello PipedWriter
Metode Java PipedWriter
Spodnja slika prikazuje metode razreda PipedWriter.

Zdaj bomo podrobno razpravljali o vsaki metodi posebej:
1. napiši (int char): Ta metoda se uporablja za pisanje enega znaka v cev.
string.valueof java
Sintaksa:
javno prazno pisanje (int char)
- Parameter: Ta metoda vzame en parameter, ki predstavlja znak, ki ga je treba napisati.
- Izjema: Ta metoda vrne IOException, če pride do težave z V/I operacijo.
2. write(char[] carray int offset int maxlen): Ta metoda se uporablja za pisanje znakov iz matrike v cev.
Sintaksa:
public void write(char[] carray int offset int maxlen)
- Parameter: Ta metoda vključuje tri parametre, ki so navedeni spodaj:
- carray: To je niz znakov, ki vsebuje podatke
- odmik: To je položaj v matriki, kjer se začne pisanje obrazca
- maxlen: To je največje število znakov za pisanje.
- Izjema: Ta metoda vrne IOException, če pride do težave z V/I operacijo.
3. povezava (destinacija PipedReader): Ta metoda se uporablja za povezavo PipedWriter s PipedReaderjem.
Sintaksa:
javna prazna povezava (destinacija PipedReader)
- Parameter: Ta metoda ima cilj enega parametra, to je PipedReader, s katerim se bo PipedWriter povezal za prenos podatkov.
- Izjema: Ta metoda vrže izjemo IOException, če med povezovanjem pride do napake.
4. flush(): Ta metoda se uporablja za izpiranje podatkov v cevi.
Sintaksa:
java povratni niz
javni void flush()
- Parameter: Ta metoda ne zajema nobenega parametra.
- Izjema: Ta metoda sproži izjemo IOException, če med izpiranjem podatkov pride do napake.
5. zapri(): Ta metoda se uporablja za zapiranje PipedWriter.
Synatx:
public void close()
- Parameter: Ta metoda ne zajema nobenega parametra.
- Izjema: Ta metoda vrže izjemo IOException, če pride do težave z zapiranjem zapisovalnika.
Zdaj bomo razpravljali o tem, kako lahko uporabimo razred PipedWriter za pisanje podatkov in njihovo branje prek povezanega PipedReaderja
binarno iskalno drevo]
primer:
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(); } }
Izhod
Output from the pipe: J A V A
Program Java, ki ponazarja delovanje metod razreda PipedWriter
Zdaj bomo zapisali nekaj znakov, izpraznili izhod in zaprli zapisovalnik.
primer:
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(); } } }
Izhod
Output after flush(): G E E K S Closing the Writer streamUstvari kviz