logo

Classe Java PipedWriter

Le Classe PipedWriter en Java permet à deux threads de communiquer entre eux en transmettant des données via un canal. Cette classe est utile lorsque l'on souhaite qu'une partie du programme envoie des données à une autre partie sans les stocker en mémoire.

Caractéristiques de la classe PipedWriter :

  • Il permet d'écrire des données dans un tube.
  • Il utilise un tampon pour stocker temporairement les données avant de les envoyer au PipedReader.
  • Il fonctionne avec PipedReader pour garantir un transfert de données sécurisé entre les threads.
  • Si le tuyau se brise, une erreur est générée.

Déclaration de PipedWriter en Java

La déclaration de la classe PipedWriter est :



la classe publique PipedWriter étend Writer

Toutes les interfaces implémentées :

  • Fermable : Cette interface est utilisée par les classes qui gèrent des ressources.
  • Jetable : Cette interface est utilisée pour vider les données vers leur destination.
  • Appendice : Cette interface est utilisée pour ajouter des données à un flux existant.
  • Fermeture automatique : Cette interface permet la fermeture automatique des ressources.

Constructeurs dans la classe PipedWriter

Cette classe se compose de deux constructeurs à l'aide desquels nous pouvons créer des objets de cette classe de différentes manières. Voici les constructeurs disponibles dans cette classe :

1. PipedWriter() : Ce constructeur est utilisé pour créer un PipedWriter qui n'est encore connecté à rien.

Syntaxe:

PipedWriter()

Exemple:

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

Sortir
Hello from PipedWriter!


2. PipedWriter (PipedReader inStream) : Ce constructeur est utilisé pour créer un PipedWriter et le connecter à un PipedReader.

Syntaxe:

PipedWriter (PipedReader snk)

Exemple:

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

Sortir
Hello PipedWriter


Méthodes Java PipedWriter

L'image ci-dessous montre les méthodes de la classe PipedWriter.

fonction python chr
Classe io.PipedWriter en Java' title=


Nous allons maintenant discuter de chaque méthode une par une en détail :

1. écrire (int char): Cette méthode est utilisée pour écrire un seul caractère dans un tube.

Syntaxe:

écriture publique vide (int char)

  • Paramètre: Cette méthode prend un paramètre qui est char représentant le caractère à écrire.
  • Exception: Cette méthode renvoie IOException s'il y a un problème avec l'opération d'E/S.


2. write(char[] carray int offset int maxlen) : Cette méthode est utilisée pour écrire des caractères d’un tableau dans le tube.

Syntaxe:

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

  • Paramètre: Cette méthode comprend trois paramètres répertoriés ci-dessous :
    • carray: C'est le tableau de caractères qui contient les données
    • compenser: C'est la position dans le tableau où commencer à écrire le formulaire
    • maxlen : C'est le nombre maximum de caractères à écrire.
  • Exception: Cette méthode renvoie IOException s'il y a un problème avec l'opération d'E/S.


3. connecter (destination PipedReader) : Cette méthode est utilisée pour connecter le PipedWriter à un PipedReader.

Syntaxe:

connexion publique vide (destination PipedReader)

  • Paramètre: Cette méthode prend une destination de paramètre : le PipedReader auquel le PipedWriter se connectera pour le transfert de données.
  • Exception: Cette méthode renvoie IOException si une erreur se produit lors de la connexion.


4. flush() : Cette méthode est utilisée pour vider les données dans le canal.

Syntaxe:

public void flush()

  • Paramètre: Cette méthode ne prend aucun paramètre.
  • Exception: Cette méthode renvoie IOException si une erreur se produit lors du vidage des données.


programmation int c non signée

5. fermer() : Cette méthode est utilisée pour fermer le PipedWriter.

Synatex :

public vide fermer()

  • Paramètre: Cette méthode ne prend aucun paramètre.
  • Exception: Cette méthode renvoie IOException s'il y a un problème avec la fermeture du rédacteur.


Nous allons maintenant discuter de la façon dont nous pouvons utiliser la classe PipedWriter pour écrire des données et les lire via un PipedReader connecté.

Exemple:

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

Sortir
Output from the pipe: J A V A



Programme Java illustrant le fonctionnement des méthodes de classe PipedWriter

Nous allons maintenant écrire quelques caractères dans la sortie et fermer le rédacteur.

Exemple:

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

Sortir
Output after flush(): G E E K S Closing the Writer stream 
Créer un quiz