logo

Clasa Java PipedWriter

The Clasa PipedWriter în Java permite două fire să comunice între ele prin trecerea datelor printr-o conductă. Această clasă este utilă atunci când dorim ca o parte a programului să trimită date către o altă parte fără a le stoca în memorie.

Caracteristici ale clasei PipedWriter:

  • Permite scrierea datelor într-o conductă.
  • Utilizează un buffer pentru a stoca temporar datele înainte de a le trimite către PipedReader.
  • Funcționează cu PipedReader pentru a asigura transferul sigur de date între fire.
  • Daca teava se rupe, se produce o eroare.

Declarația PipedWriter în Java

Declarația clasei PipedWriter este:



clasa publică PipedWriter extinde Writer

Toate interfețele implementate:

  • Închidere: Această interfață este folosită de clasele care gestionează resurse.
  • Flushable: Această interfață este utilizată pentru a șterge datele la destinație.
  • Anexabil: Această interfață este utilizată pentru a adăuga date la un flux existent.
  • Închidere automată: Această interfață permite închiderea automată a resurselor.

Constructori din clasa PipedWriter

Această clasă este formată din doi constructori cu ajutorul cărora putem crea obiecte din această clasă în moduri diferite. Următorii sunt constructorii disponibili în această clasă:

1. PipedWriter(): Acest constructor este folosit pentru a crea un PipedWriter care nu este încă conectat la nimic.

Sintaxă:

PipedWriter()

Exemplu:

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

Ieșire
Hello from PipedWriter!


2. PipedWriter (PipedReader inStream): Acest constructor folosit pentru a crea un PipedWriter și îl conectează la un PipedReader.

python scrie json în fișier

Sintaxă:

PipedWriter (snk PipedReader)

Exemplu:

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

Ieșire
Hello PipedWriter


Metode Java PipedWriter

Imaginea de mai jos demonstrează metodele clasei PipedWriter.

Clasa io.PipedWriter în Java' title=


Acum vom discuta despre fiecare metodă una câte una în detaliu:

1. scrie (int char): Această metodă este folosită pentru a scrie un singur caracter într-un pipe.

Sintaxă:

public void write(int char)

  • Parametru: Această metodă ia un parametru care reprezintă caracterul care urmează să fie scris.
  • Excepţie: Această metodă returnează IOException dacă există o problemă cu operația I/O.


2. scrie(char[] carray int offset int maxlen): Această metodă este folosită pentru a scrie caractere dintr-o matrice în conductă.

Sintaxă:

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

  • Parametru: Această metodă include trei parametri care sunt enumerați mai jos:
    • carray: Este matricea de caractere care conține date
    • compensare: Este poziția din matrice de unde să începeți să scrieți formularul
    • maxlen: Este numărul maxim de caractere de scris.
  • Excepţie: Această metodă returnează IOException dacă există o problemă cu operația I/O.


3. conectați (destinație PipedReader): Această metodă este folosită pentru a conecta PipedWriter la un PipedReader.

Sintaxă:

public void connect (destinație PipedReader)

  • Parametru: Această metodă ia o destinație de parametru, acesta este PipedReader la care PipedWriter se va conecta pentru transferul de date.
  • Excepţie: Această metodă aruncă IOException dacă apare o eroare în timpul conectării.


4. spălare(): Această metodă este utilizată pentru a spăla datele din conductă.

Sintaxă:

spălare public void()

  • Parametru: Această metodă nu ia niciun parametru.
  • Excepţie: Această metodă aruncă IOException dacă apare o eroare în timpul spălării datelor.


5. închide(): Această metodă este folosită pentru a închide PipedWriter.

Synatx:

vid public close()

  • Parametru: Această metodă nu ia niciun parametru.
  • Excepţie: Această metodă aruncă IOException dacă există o problemă cu închiderea scriitorului.


Acum vom discuta cum putem folosi clasa PipedWriter pentru a scrie date și a le citi printr-un PipedReader conectat

Exemplu:

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

Ieșire
Output from the pipe: J A V A



Program Java care ilustrează funcționarea metodelor clasei PipedWriter

Acum vom scrie câteva caractere care vor șterge rezultatul și vom închide scriitorul.

șir invers java

Exemplu:

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

Ieșire
Output after flush(): G E E K S Closing the Writer stream 
Creați un test