Тхе Класа ПипедВритер у Јави омогућава две нити да комуницирају једна са другом пропуштањем података кроз цев. Ова класа је корисна када желимо да један део програма шаље податке другом делу без складиштења у меморији.
дискета
Карактеристике класе ПипедВритер:
- Омогућава уписивање података у цев.
- Користи бафер за привремено складиштење података пре него што их пошаље у ПипедРеадер.
- Ради са ПипедРеадер-ом како би осигурао безбедан пренос података између нити.
- Ако се цев поквари, јавља се грешка.
Декларација ПипедВритер-а у Јави
Декларација класе ПипедВритер је:
јавна класа ПипедВритер проширује Вритер
Сви имплементирани интерфејси:
- Затварање: Овај интерфејс користе класе које рукују ресурсима.
- Може се испирати: Овај интерфејс се користи за избацивање података на одредиште.
- Може се додати: Овај интерфејс се користи за додавање података у постојећи ток.
- АутоЦлосеабле: Овај интерфејс омогућава аутоматско затварање ресурса.
Конструктори у класи ПипедВритер
Ова класа се састоји од два конструктора уз помоћ којих можемо креирати објекте ове класе на различите начине. Следећи су конструктори доступни у овој класи:
1. ПипедВритер(): Овај конструктор се користи за креирање ПипедВритер-а који још није повезан ни са чим.
Синтакса:
ПипедВритер()
Пример:
листа јава у низ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(); } } }
Излаз
Hello from PipedWriter!
2. ПипедВритер(ПипедРеадер инСтреам): Овај конструктор који смо користили да креирамо ПипедВритер и повезујемо га са ПипедРеадер-ом.
Синтакса:
ПипедВритер(ПипедРеадер снк)
Пример:
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(); } } }
Излаз
Hello PipedWriter
Јава ПипедВритер методе
Слика испод показује методе класе ПипедВритер.

Сада ћемо детаљно разговарати о свакој методи један по један:
1. написати (инт цхар): Овај метод се користи за уписивање једног знака у цев.
СИМ картица је уметнута, али нема услуге Андроид
Синтакса:
публиц воид врите (инт цхар)
- Параметар: Овај метод узима један параметар који исцхар представља карактер који треба написати.
- Изузетак: Овај метод враћа ИОЕкцептион ако постоји проблем са И/О операцијом.
2. врите(цхар[] царраи инт оффсет инт маклен): Овај метод се користи за писање знакова из низа у цев.
Синтакса:
публиц воид врите(цхар[] царраи инт оффсет инт маклен)
- Параметар: Овај метод укључује три параметра која су наведена у наставку:
- носи: То је низ знакова који садржи податке
- офсет: То је позиција у низу на којој треба започети писање форме
- маклен: То је максималан број знакова за писање.
- Изузетак: Овај метод враћа ИОЕкцептион ако постоји проблем са И/О операцијом.
3. повежите (одредиште ПипедРеадер-а): Овај метод се користи за повезивање ПипедВритер-а са ПипедРеадер-ом.
Синтакса:
публиц воид цоннецт (одредиште ПипедРеадер-а)
- Параметар: Овај метод узима једно одредиште параметра, то је ПипедРеадер на који ће се ПипедВритер повезати ради преноса података.
- Изузетак: Овај метод баца ИОЕкцептион ако дође до грешке током повезивања.
4. флусх(): Овај метод се користи за испирање података у цеви.
Синтакса:
вечера против вечере
публиц воид флусх()
- Параметар: Овај метод не узима ниједан параметар.
- Изузетак: Овај метод баца ИОЕкцептион ако дође до грешке приликом испирања података.
5. затвори(): Овај метод се користи за затварање ПипедВритер-а.
Синатк:
публиц воид цлосе()
- Параметар: Овај метод не узима ниједан параметар.
- Изузетак: Овај метод баца ИОЕкцептион ако постоји проблем са затварањем писача.
Сада ћемо разговарати о томе како можемо да користимо класу ПипедВритер за писање података и читање преко повезаног ПипедРеадер-а
топологија мреже
Пример:
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(); } }
Излаз
Output from the pipe: J A V A
Јава програм који илуструје рад метода класе ПипедВритер
Сада ћемо написати неке знакове, испразнити излаз и затворити писац.
Пример:
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(); } } }
Излаз
Output after flush(): G E E K S Closing the Writer streamКреирај квиз