logo

Java PipedWriter-klasse

De PipedWriter-klassen i Java lar to tråder kommunisere med hverandre ved å sende data gjennom et rør. Denne klassen er nyttig når vi vil at en del av programmet skal sende data til en annen del uten å lagre det i minnet.

Funksjoner i PipedWriter-klassen:

  • Det lar deg skrive data inn i et rør.
  • Den bruker en buffer for å lagre data midlertidig før den sendes til PipedReader.
  • Det fungerer med PipedReader for å sikre sikker dataoverføring mellom tråder.
  • Hvis røret ryker gir det en feil.

Erklæring fra PipedWriter i Java

Erklæringen fra PipedWriter-klassen er:



offentlig klasse PipedWriter utvider Writer

Alle implementerte grensesnitt:

  • Kan lukkes: Dette grensesnittet brukes av klasser som håndterer ressurser.
  • Spylbar: Dette grensesnittet brukes til å skylle data til destinasjonen.
  • Kan legges til: Dette grensesnittet brukes til å legge til data til en eksisterende strøm.
  • Autolukkbar: Dette grensesnittet tillater automatisk lukking av ressurser.

Konstruktører i PipedWriter-klassen

Denne klassen består av to konstruktører ved hjelp av hvilke vi kan lage objekter av denne klassen på forskjellige måter. Følgende er konstruktørene som er tilgjengelige i denne klassen:

1. PipedWriter(): Denne konstruktøren brukes til å lage en PipedWriter som ikke er koblet til noe ennå.

Syntaks:

PipedWriter()

rev eller ulv

Eksempel:

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

Produksjon
Hello from PipedWriter!


2. PipedWriter(PipedReader inStream): Denne konstruktøren vi brukte til å lage en PipedWriter og koble den til en PipedReader.

java-verdien av enum

Syntaks:

PipedWriter(PipedReader snk)

Eksempel:

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

Produksjon
Hello PipedWriter


Java PipedWriter-metoder

Bildet nedenfor viser metodene til PipedWriter-klassen.

io.PipedWriter Class i Java' title=


Nå skal vi diskutere hver metode en etter en i detalj:

1. skriv(int char): Denne metoden brukes til å skrive et enkelt tegn til et rør.

Syntaks:

offentlig void skrive(int char)

  • Parameter: Denne metoden tar en parameter som representerer tegnet som skal skrives.
  • Unntak: Denne metoden returnerer IOException hvis det er et problem med I/O-operasjonen.


2. skriv(char[] carray int offset int maxlen): Denne metoden brukes til å skrive tegn fra en matrise til røret.

Syntaks:

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

  • Parameter: Denne metoden inkluderer tre parametere som er oppført nedenfor:
    • bære: Det er tegnarrayen som inneholder data
    • offset: Det er posisjonen i matrisen hvor du skal begynne å skrive form
    • maxlen: Det er maksimalt antall tegn å skrive.
  • Unntak: Denne metoden returnerer IOException hvis det er et problem med I/O-operasjonen.


3. koble til (PipedReader-destinasjon): Denne metoden brukes til å koble PipedWriter til en PipedReader.

Syntaks:

bash annet hvis

offentlig void-tilkobling (PipedReader-destinasjon)

  • Parameter: Denne metoden tar én parameterdestinasjon, det er PipedReader som PipedWriter vil koble til for dataoverføring.
  • Unntak: Denne metoden kaster IOException hvis det oppstår en feil under tilkobling.


4. flush(): Denne metoden brukes til å skylle data i røret.

Syntaks:

public void flush()

  • Parameter: Denne metoden tar ingen parameter.
  • Unntak: Denne metoden kaster IOException hvis det oppstår en feil under tømming av dataene.


arveprogram i python

5. lukk(): Denne metoden brukes til å lukke PipedWriter.

Synatx:

public void close()

  • Parameter: Denne metoden tar ingen parameter.
  • Unntak: Denne metoden kaster IOException hvis det er et problem med å lukke skriveren.


Nå skal vi diskutere hvordan vi kan bruke PipedWriter-klassen til å skrive data og lese dem gjennom en tilkoblet PipedReader

Eksempel:

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

Produksjon
Output from the pipe: J A V A



Java-program som illustrerer hvordan PipedWriter-klassemetoder fungerer

Nå skal vi skrive noen tegn tømme utdataene og lukke forfatteren.

Eksempel:

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

Produksjon
Output after flush(): G E E K S Closing the Writer stream 
Lag quiz