logo

Java PipedWriter klasė

The PipedWriter klasė Java leidžia dviem gijomis susisiekti tarpusavyje, perduodant duomenis vamzdžiu. Ši klasė naudinga, kai norime, kad viena programos dalis siųstų duomenis į kitą dalį, nesaugodama jų atmintyje.

„PipedWriter“ klasės ypatybės:

  • Tai leidžia įrašyti duomenis į vamzdį.
  • Jis naudoja buferį, kad laikinai saugotų duomenis prieš siunčiant juos į PipedReader.
  • Jis veikia su PipedReader, kad užtikrintų saugų duomenų perdavimą tarp gijų.
  • Jei vamzdis lūžta, tai rodo klaidą.

„PipedWriter“ deklaracija „Java“.

„PipedWriter“ klasės deklaracija yra tokia:



viešoji klasė PipedWriter pratęsia Writer

Visos įdiegtos sąsajos:

  • Užsidaro: Šią sąsają naudoja klasės, kurios tvarko išteklius.
  • Nuplaunamas: Ši sąsaja naudojama duomenims nuplauti į paskirties vietą.
  • Pridedama: Ši sąsaja naudojama duomenims pridėti prie esamo srauto.
  • Automatinis uždarymas: Ši sąsaja leidžia automatiškai uždaryti išteklius.

Konstruktoriai PipedWriter klasėje

Šią klasę sudaro du konstruktoriai, kurių pagalba galime įvairiai kurti šios klasės objektus. Šioje klasėje galimi šie konstruktoriai:

1. PipedWriter(): Šis konstruktorius naudojamas PipedWriter, kuris dar nėra prijungtas prie nieko, sukurti.

Sintaksė:

PipedWriter ()

Pavyzdys:

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();  }  } } 

Išvestis
Hello from PipedWriter!


2. „PipedWriter“ („PipedReader“ sraute): Šis konstruktorius, kurį naudojome, sukuria PipedWriter ir sujungia jį su PipedReader.

Sintaksė:

python chr funkcija

„PipedWriter“ („PipedReader snk“)

Pavyzdys:

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();  }  } } 

Išvestis
Hello PipedWriter


Java PipedWriter metodai

Žemiau esančiame paveikslėlyje pavaizduoti PipedWriter klasės metodai.

io.PipedWriter klasė Java' title=


pilna forma pvr

Dabar mes išsamiai aptarsime kiekvieną metodą po vieną:

1. rašyti (int char): Šis metodas naudojamas vienam simboliui įrašyti į vamzdį.

Sintaksė:

viešas tuščias rašymas (int char)

  • Parametras: Šis metodas paima vieną parametrą, kuris reiškia rašomą simbolį.
  • Išimtis: Šis metodas grąžina IOException, jei kyla problemų dėl įvesties / išvesties operacijos.


2. write(char[] carray int offset int maxlen): Šis metodas naudojamas rašant simbolius iš masyvo į vamzdį.

Sintaksė:

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

  • Parametras: Šis metodas apima tris toliau išvardytus parametrus:
    • carray: Tai yra simbolių masyvas, kuriame yra duomenų
    • kompensuoti: Tai vieta masyve, nuo kurios pradėti rašyti formą
    • Maxlen: Tai didžiausias rašomų simbolių skaičius.
  • Išimtis: Šis metodas grąžina IOException, jei kyla problemų dėl įvesties / išvesties operacijos.


3. prisijungti (PipedReader paskirties vieta): Šis metodas naudojamas PipedWriter prijungti prie PipedReader.

Sintaksė:

viešasis ryšys („PipedReader“ paskirties vieta)

  • Parametras: Šis metodas reikalauja vieno parametro paskirties vietos, tai yra PipedReader, prie kurio PipedWriter prisijungs, kad galėtų perduoti duomenis.
  • Išimtis: Šis metodas pateikia IOException, jei prisijungiant įvyksta klaida.


4. flush(): Šis metodas naudojamas duomenims nuplauti vamzdyje.

Sintaksė:

public void flush ()

  • Parametras: Šis metodas nereikalauja jokių parametrų.
  • Išimtis: Šis metodas išmeta IOException, jei išplaunant duomenis įvyksta klaida.


abėcėlė į skaičių

5. uždaryti (): Šis metodas naudojamas PipedWriter uždarymui.

Sinatsė:

vieša galia uždaryti ()

  • Parametras: Šis metodas nereikalauja jokių parametrų.
  • Išimtis: Šis metodas išmeta IOException, jei kyla problemų uždarant rašytoją.


Dabar aptarsime, kaip galime naudoti PipedWriter klasę duomenims rašyti ir skaityti per prijungtą PipedReader

Pavyzdys:

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();   }  } 

Išvestis
Output from the pipe: J A V A



Java programa, iliustruojanti PipedWriter klasės metodų veikimą

Dabar mes parašysime kai kuriuos simbolius, praplaukite išvestį ir uždarysime rašytoją.

Pavyzdys:

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();  }  } } 

Išvestis
Output after flush(): G E E K S Closing the Writer stream 
Sukurti viktoriną