logo

Java PipedWriter klasa

The Klasa PipedWriter u Javi omogućuje dvije niti da međusobno komuniciraju prosljeđivanjem podataka kroz cijev. Ova klasa je korisna kada želimo da jedan dio programa šalje podatke drugom dijelu bez pohranjivanja u memoriju.

Značajke klase PipedWriter:

  • Omogućuje pisanje podataka u cijev.
  • Koristi međuspremnik za privremeno pohranjivanje podataka prije slanja u PipedReader.
  • Radi s PipedReaderom kako bi osigurao siguran prijenos podataka između niti.
  • Ako cijev pukne, javlja se pogreška.

Deklaracija PipedWritera u Javi

Deklaracija klase PipedWriter je:



javna klasa PipedWriter proširuje Writer

Sva implementirana sučelja:

  • Može se zatvoriti: Ovo sučelje koriste klase koje rukuju resursima.
  • Mogućnost ispiranja: Ovo se sučelje koristi za ispiranje podataka do odredišta.
  • Priključivo: Ovo se sučelje koristi za dodavanje podataka u postojeći tok.
  • Automatsko zatvaranje: Ovo sučelje omogućuje automatsko zatvaranje resursa.

Konstruktori u klasi PipedWriter

Ova klasa se sastoji od dva konstruktora uz pomoć kojih objekte ove klase možemo kreirati na različite načine. Sljedeći su konstruktori dostupni u ovoj klasi:

1. PipedWriter(): Ovaj se konstruktor koristi za stvaranje PipedWriter-a koji još ni s čim nije povezan.

naplata s git-om

Sintaksa:

PipedWriter()

javascript poduka

Primjer:

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

Izlaz
Hello from PipedWriter!


2. PipedWriter(PipedReader inStream): Ovaj konstruktor za koji smo koristili stvara PipedWriter i povezuje ga s PipedReaderom.

Sintaksa:

PipedWriter(PipedReader snk)

Primjer:

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

Izlaz
Hello PipedWriter


Java PipedWriter metode

Slika ispod pokazuje metode klase PipedWriter.

io.PipedWriter klasa u Javi' title=


Sada ćemo detaljno razmotriti svaku metodu jednu po jednu:

pretvaranje niza u cijeli broj u Javi

1. napiši (int char): Ova se metoda koristi za upisivanje jednog znaka u cijev.

Sintaksa:

javno prazno pisanje (int char)

  • Parametar: Ova metoda uzima jedan parametar koji ischar predstavlja znak koji treba napisati.
  • Iznimka: Ova metoda vraća IOException ako postoji problem s I/O operacijom.


2. write(char[] carray int offset int maxlen): Ova se metoda koristi za pisanje znakova iz niza u cijev.

Sintaksa:

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

  • Parametar: Ova metoda uključuje tri parametra koji su navedeni u nastavku:
    • Carray: To je niz znakova koji sadrži podatke
    • pomak: To je pozicija u nizu na kojoj se počinje pisati obrazac
    • maxlen: To je najveći broj znakova za pisanje.
  • Iznimka: Ova metoda vraća IOException ako postoji problem s I/O operacijom.


3. povezivanje (odredište PipedReader): Ova se metoda koristi za povezivanje PipedWriter-a s PipedReader-om.

Sintaksa:

javno prazno povezivanje (PipedReader odredište)

  • Parametar: Ova metoda uzima odredište jednog parametra, to je PipedReader na koji će se PipedWriter povezati za prijenos podataka.
  • Iznimka: Ova metoda izbacuje IOException ako dođe do pogreške tijekom povezivanja.


4. ispiranje(): Ova se metoda koristi za ispiranje podataka u cijevi.

Sintaksa:

string metode java

javni void flush()

  • Parametar: Ova metoda ne uzima nikakve parametre.
  • Iznimka: Ova metoda izbacuje IOException ako dođe do pogreške tijekom ispiranja podataka.


5. zatvori(): Ova se metoda koristi za zatvaranje PipedWritera.

Synatx:

public void close()

  • Parametar: Ova metoda ne uzima nikakve parametre.
  • Iznimka: Ova metoda izbacuje IOException ako postoji problem sa zatvaranjem programa za pisanje.


foreach tipkalopis

Sada ćemo razgovarati o tome kako možemo koristiti klasu PipedWriter za pisanje podataka i njihovo čitanje kroz povezani PipedReader

Primjer:

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

Izlaz
Output from the pipe: J A V A



Java program koji ilustrira rad metoda klase PipedWriter

Sada ćemo napisati neke znakove isprazniti izlaz i zatvoriti program za pisanje.

Primjer:

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

Izlaz
Output after flush(): G E E K S Closing the Writer stream 
Napravi kviz