logo

Razred Java PipedWriter

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

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.

Razred io.PipedWriter v Javi' title=


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 stream 
Ustvari kviz