logo

Java PipedWriter -luokka

The PipedWriter-luokka Javassa mahdollistaa kahden säikeen kommunikoinnin toistensa kanssa kuljettamalla tietoja putken läpi. Tämä luokka on hyödyllinen, kun haluamme yhden ohjelman osan lähettävän tietoja toiseen osaan tallentamatta sitä muistiin.

PipedWriter-luokan ominaisuudet:

  • Se mahdollistaa tietojen kirjoittamisen putkeen.
  • Se käyttää puskuria tietojen väliaikaiseen tallentamiseen ennen sen lähettämistä PipedReaderille.
  • Se toimii PipedReaderin kanssa varmistaakseen turvallisen tiedonsiirron säikeiden välillä.
  • Jos putki katkeaa, se antaa virheen.

PipedWriterin julistus Javassa

PipedWriter-luokan ilmoitus on:



julkinen luokka PipedWriter laajentaa Writeriä

Kaikki toteutetut käyttöliittymät:

Java-indeksi
  • Suljettava: Tätä käyttöliittymää käyttävät luokat, jotka käsittelevät resursseja.
  • Huuhdeltava: Tätä liitäntää käytetään tietojen huuhtelemiseen määränpäähänsä.
  • Lisättävä: Tätä käyttöliittymää käytetään tietojen lisäämiseen olemassa olevaan streamiin.
  • Automaattinen sulkeminen: Tämä käyttöliittymä mahdollistaa resurssien automaattisen sulkemisen.

PipedWriter-luokan rakentajat

Tämä luokka koostuu kahdesta konstruktorista, joiden avulla voimme luoda tämän luokan objekteja eri tavoin. Tässä luokassa saatavilla olevat rakentajat:

1. PipedWriter(): Tätä konstruktoria käytetään luomaan PipedWriter, joka ei ole vielä yhteydessä mihinkään.

Syntaksi:

PipedWriter()

Esimerkki:

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

Lähtö
Hello from PipedWriter!


2. PipedWriter (PipedReader inStream): Tämä rakentaja, jota meillä oli tapana luoda PipedWriter ja yhdistää sen PipedReader.

peli kyyhkynen android

Syntaksi:

PipedWriter (PipedReader snk)

Esimerkki:

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

Lähtö
Hello PipedWriter


Java PipedWriter -menetelmät

Alla oleva kuva esittää PipedWriter-luokan menetelmät.

io.PipedWriter Class Javassa' title=


Nyt aiomme keskustella jokaisesta menetelmästä yksitellen yksityiskohtaisesti:

1. kirjoittaa (int char): Tätä menetelmää käytetään yhden merkin kirjoittamiseen putkeen.

Syntaksi:

julkinen void kirjoittaa (int char)

multiplekseri
  • Parametri: Tämä menetelmä ottaa yhden parametrin, joka edustaa kirjoitettavaa merkkiä.
  • Poikkeus: Tämä menetelmä palauttaa IOExceptionin, jos I/O-toiminnossa on ongelma.


2. write(char[] carray int offset int maxlen): Tätä menetelmää käytetään merkkien kirjoittamiseen taulukosta putkeen.

Syntaksi:

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

  • Parametri: Tämä menetelmä sisältää kolme parametria, jotka on lueteltu alla:
    • carray: Se on merkkijono, joka sisältää dataa
    • offset: Se on paikka taulukossa, josta aloitetaan lomakkeen kirjoittaminen
    • maxlen: Se on kirjoitettavien merkkien enimmäismäärä.
  • Poikkeus: Tämä menetelmä palauttaa IOExceptionin, jos I/O-toiminnossa on ongelma.


3. yhdistä (PipedReader-kohde): Tätä menetelmää käytetään yhdistämään PipedWriter PipedReaderiin.

Syntaksi:

julkinen void -yhteys (PipedReader-kohde)

  • Parametri: Tämä menetelmä ottaa yhden parametrin kohteen, joka on PipedReader, johon PipedWriter muodostaa yhteyden tiedonsiirtoa varten.
  • Poikkeus: Tämä menetelmä lähettää IOExceptionin, jos yhteyden muodostamisen aikana tapahtuu virhe.


4. huuhtele(): Tätä menetelmää käytetään tietojen huuhtelemiseen putkessa.

Syntaksi:

merkkijono java-menetelmissä

public void flush()

cp-komento linuxissa
  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Poikkeus: Tämä menetelmä heittää IOExceptionin, jos tietoja huuhdettaessa tapahtuu virhe.


5. sulje(): Tätä menetelmää käytetään PipedWriterin sulkemiseen.

Synatx:

julkinen void sulje()

  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Poikkeus: Tämä menetelmä heittää IOExceptionin, jos kirjoittajan sulkemisessa on ongelma.


Nyt keskustelemme siitä, kuinka voimme käyttää PipedWriter-luokkaa tietojen kirjoittamiseen ja lukemiseen liitetyn PipedReaderin kautta

Esimerkki:

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

Lähtö
Output from the pipe: J A V A



Java-ohjelma, joka havainnollistaa PipedWriter-luokan menetelmien toimintaa

Nyt kirjoitetaan joitain merkkejä huuhtelemalla tulos ja suljetaan kirjoittaja.

Esimerkki:

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

Lähtö
Output after flush(): G E E K S Closing the Writer stream 
Luo tietokilpailu