logo

Java PipedWriter Sınıfı

Java'da PipedWriter sınıfı iki iş parçacığının verileri bir borudan geçirerek birbirleriyle iletişim kurmasını sağlar. Bu sınıf, programın bir bölümünün hafızada saklanmadan başka bir bölüme veri göndermesini istediğimizde kullanışlıdır.

PipedWriter Sınıfının Özellikleri:

  • Bir boruya veri yazmayı sağlar.
  • Verileri PipedReader'a göndermeden önce geçici olarak depolamak için bir arabellek kullanır.
  • İş parçacıkları arasında güvenli veri aktarımını sağlamak için PipedReader ile birlikte çalışır.
  • Boru kırılırsa hata verir.

Java'da PipedWriter Bildirgesi

PipedWriter sınıfının bildirimi şöyledir:



genel sınıf PipedWriter, Writer'ı genişletiyor

Uygulanan Tüm Arayüzler:

  • Kapatılabilir: Bu arayüz kaynakları işleyen sınıflar tarafından kullanılır.
  • Yıkanabilir: Bu arayüz, verileri hedefine ulaştırmak için kullanılır.
  • Eklenebilir: Bu arayüz mevcut bir akışa veri eklemek için kullanılır.
  • Otomatik Kapatılabilir: Bu arayüz kaynakların otomatik olarak kapatılmasına olanak sağlar.

PipedWriter Sınıfındaki Yapıcılar

Bu sınıf, yardımıyla bu sınıfın nesnelerini farklı şekillerde oluşturabileceğimiz iki kurucudan oluşur. Bu sınıfta mevcut olan yapıcılar şunlardır:

1. PipedWriter(): Bu yapıcı henüz hiçbir şeye bağlı olmayan bir PipedWriter oluşturmak için kullanılır.

Sözdizimi:

PipedWriter()

java ayy kavramları

Örnek:

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

Çıkış
Hello from PipedWriter!


2. PipedWriter(PipedReader inStream): Bu yapıcı, bir PipedWriter oluşturmak ve onu bir PipedReader'a bağlamak için kullandık.

Sözdizimi:

PipedWriter(PipedReader snk)

Örnek:

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

Çıkış
Hello PipedWriter


Java PipedWriter Yöntemleri

Aşağıdaki resimde PipedWriter sınıfının yöntemleri gösterilmektedir.

java'da hashset nedir
Java'da io.PipedWriter Sınıfı' title=


Şimdi her yöntemi tek tek ayrıntılı olarak tartışacağız:

1. yaz(int karakter): Bu yöntem bir boruya tek bir karakter yazmak için kullanılır.

Sözdizimi:

genel geçersiz yazma (int char)

  • Parametre: Bu yöntem yazılacak karakteri temsil eden ischar parametresini alır.
  • İstisna: Bu yöntem, G/Ç işleminde bir sorun varsa IOException değerini döndürür.


asit özellikleri

2. write(char[] carray int offset int maxlen): Bu yöntem bir diziden boruya karakter yazmak için kullanılır.

Sözdizimi:

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

  • Parametre: Bu yöntem aşağıda listelenen üç parametreyi içerir:
    • : Verileri içeren karakter dizisidir
    • telafi etmek: Dizide form yazmaya başlayacağınız konumdur
    • maksimum: Yazılacak maksimum karakter sayısıdır.
  • İstisna: Bu yöntem, G/Ç işleminde bir sorun varsa IOException değerini döndürür.


3. bağlanın (PipedReader hedefi): Bu yöntem, PipedWriter'ı bir PipedReader'a bağlamak için kullanılır.

Sözdizimi:

genel geçersiz bağlantı (PipedReader hedefi)

  • Parametre: Bu yöntem bir parametre hedefini alır; bu, PipedWriter'ın veri aktarımı için bağlanacağı PipedReader'dır.
  • İstisna: Bu yöntem, bağlanırken bir hata oluşursa IOException oluşturur.


4. yıkama(): Bu yöntem, kanaldaki verileri temizlemek için kullanılır.

Sözdizimi:

genel geçersiz yıkama ()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • İstisna: Bu yöntem, veriler temizlenirken bir hata oluşursa IOException oluşturur.


Java'da ayrı dize

5. kapat(): Bu yöntem PipedWriter'ı kapatmak için kullanılır.

Sözdizimi:

genel geçersiz kapatma ()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • İstisna: Yazıcının kapatılmasıyla ilgili bir sorun varsa bu yöntem IOException'ı oluşturur.


Şimdi veri yazmak için PipedWriter sınıfını nasıl kullanabileceğimizi ve verileri bağlı bir PipedReader aracılığıyla okuyacağımızı tartışacağız.

Örnek:

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

Çıkış
Output from the pipe: J A V A



PipedWriter Sınıfı Yöntemlerinin Çalışmasını Gösteren Java Programı

Şimdi çıktıyı temizleyen bazı karakterler yazacağız ve yazıcıyı kapatacağız.

Örnek:

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

Çıkış
Output after flush(): G E E K S Closing the Writer stream 
Test Oluştur