The Klasa PipedWriter u Javi omogućuje dvije niti da međusobno komuniciraju prosljeđivanjem podataka kroz cijev. Ova klasa je korisna kada želimo da jedan dio programa šalje podatke drugom dijelu bez pohranjivanja u memoriju.
Značajke klase PipedWriter:
- Omogućuje pisanje podataka u cijev.
- Koristi međuspremnik za privremeno pohranjivanje podataka prije slanja u PipedReader.
- Radi s PipedReaderom kako bi osigurao siguran prijenos podataka između niti.
- Ako cijev pukne, javlja se pogreška.
Deklaracija PipedWritera u Javi
Deklaracija klase PipedWriter je:
javna klasa PipedWriter proširuje Writer
Sva implementirana sučelja:
- Može se zatvoriti: Ovo sučelje koriste klase koje rukuju resursima.
- Mogućnost ispiranja: Ovo se sučelje koristi za ispiranje podataka do odredišta.
- Priključivo: Ovo se sučelje koristi za dodavanje podataka u postojeći tok.
- Automatsko zatvaranje: Ovo sučelje omogućuje automatsko zatvaranje resursa.
Konstruktori u klasi PipedWriter
Ova klasa se sastoji od dva konstruktora uz pomoć kojih objekte ove klase možemo kreirati na različite načine. Sljedeći su konstruktori dostupni u ovoj klasi:
1. PipedWriter(): Ovaj se konstruktor koristi za stvaranje PipedWriter-a koji još ni s čim nije povezan.
naplata s git-om
Sintaksa:
PipedWriter()
javascript poduka
Primjer:
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(); } } }
Izlaz
Hello from PipedWriter!
2. PipedWriter(PipedReader inStream): Ovaj konstruktor za koji smo koristili stvara PipedWriter i povezuje ga s PipedReaderom.
Sintaksa:
PipedWriter(PipedReader snk)
Primjer:
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(); } } }
Izlaz
Hello PipedWriter
Java PipedWriter metode
Slika ispod pokazuje metode klase PipedWriter.

Sada ćemo detaljno razmotriti svaku metodu jednu po jednu:
pretvaranje niza u cijeli broj u Javi
1. napiši (int char): Ova se metoda koristi za upisivanje jednog znaka u cijev.
Sintaksa:
javno prazno pisanje (int char)
- Parametar: Ova metoda uzima jedan parametar koji ischar predstavlja znak koji treba napisati.
- Iznimka: Ova metoda vraća IOException ako postoji problem s I/O operacijom.
2. write(char[] carray int offset int maxlen): Ova se metoda koristi za pisanje znakova iz niza u cijev.
Sintaksa:
public void write(char[] carray int offset int maxlen)
- Parametar: Ova metoda uključuje tri parametra koji su navedeni u nastavku:
- Carray: To je niz znakova koji sadrži podatke
- pomak: To je pozicija u nizu na kojoj se počinje pisati obrazac
- maxlen: To je najveći broj znakova za pisanje.
- Iznimka: Ova metoda vraća IOException ako postoji problem s I/O operacijom.
3. povezivanje (odredište PipedReader): Ova se metoda koristi za povezivanje PipedWriter-a s PipedReader-om.
Sintaksa:
javno prazno povezivanje (PipedReader odredište)
- Parametar: Ova metoda uzima odredište jednog parametra, to je PipedReader na koji će se PipedWriter povezati za prijenos podataka.
- Iznimka: Ova metoda izbacuje IOException ako dođe do pogreške tijekom povezivanja.
4. ispiranje(): Ova se metoda koristi za ispiranje podataka u cijevi.
Sintaksa:
string metode java
javni void flush()
- Parametar: Ova metoda ne uzima nikakve parametre.
- Iznimka: Ova metoda izbacuje IOException ako dođe do pogreške tijekom ispiranja podataka.
5. zatvori(): Ova se metoda koristi za zatvaranje PipedWritera.
Synatx:
public void close()
- Parametar: Ova metoda ne uzima nikakve parametre.
- Iznimka: Ova metoda izbacuje IOException ako postoji problem sa zatvaranjem programa za pisanje.
foreach tipkalopis
Sada ćemo razgovarati o tome kako možemo koristiti klasu PipedWriter za pisanje podataka i njihovo čitanje kroz povezani PipedReader
Primjer:
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(); } }
Izlaz
Output from the pipe: J A V A
Java program koji ilustrira rad metoda klase PipedWriter
Sada ćemo napisati neke znakove isprazniti izlaz i zatvoriti program za pisanje.
Primjer:
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(); } } }
Izlaz
Output after flush(): G E E K S Closing the Writer streamNapravi kviz