logo

Јава ПипедВритер Цласс

Тхе Класа ПипедВритер у Јави омогућава две нити да комуницирају једна са другом пропуштањем података кроз цев. Ова класа је корисна када желимо да један део програма шаље податке другом делу без складиштења у меморији.

дискета

Карактеристике класе ПипедВритер:

  • Омогућава уписивање података у цев.
  • Користи бафер за привремено складиштење података пре него што их пошаље у ПипедРеадер.
  • Ради са ПипедРеадер-ом како би осигурао безбедан пренос података између нити.
  • Ако се цев поквари, јавља се грешка.

Декларација ПипедВритер-а у Јави

Декларација класе ПипедВритер је:



јавна класа ПипедВритер проширује Вритер

Сви имплементирани интерфејси:

  • Затварање: Овај интерфејс користе класе које рукују ресурсима.
  • Може се испирати: Овај интерфејс се користи за избацивање података на одредиште.
  • Може се додати: Овај интерфејс се користи за додавање података у постојећи ток.
  • АутоЦлосеабле: Овај интерфејс омогућава аутоматско затварање ресурса.

Конструктори у класи ПипедВритер

Ова класа се састоји од два конструктора уз помоћ којих можемо креирати објекте ове класе на различите начине. Следећи су конструктори доступни у овој класи:

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


Јава ПипедВритер методе

Слика испод показује методе класе ПипедВритер.

ио.ПипедВритер Цласс у Јави' title=


Сада ћемо детаљно разговарати о свакој методи један по један:

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 
Креирај квиз