Classe Java PipedReader
Le Classe PipedReader en Java fait partie du java.io package et il est utilisé pour lire les données de caractères à partir d’un tube. Cette classe permet la communication entre threads où un thread écrit des données à l'aide d'un PipedWriter et un autre les lit à l'aide de PipedReader.
Caractéristiques de la classe PipedReader :
- Il permet la lecture de données via un tube.
- Il utilise un tampon pour stocker les données reçues du PipedWriter.
- Il fonctionne avec PipedWriter pour garantir que les données sont transférées en toute sécurité entre les threads.
- Si le tuyau se brise, une erreur est générée.
Qu’est-ce qu’un tuyau en Java ?
En Java, un tube est utilisé pour relier deux threads. Un thread est utilisé pour envoyer des données via le canal et l'autre thread lit les données. Si le thread qui envoie les données s'arrête ou plante, le canal est considéré comme rompu.
Déclaration de la classe PipedReader
La déclaration de la classe PipedReader est :
la classe publique PipedReader étend Reader
Toutes les interfaces implémentées :
- Fermable : Cette interface est utilisée pour fermer le flux et libérer les ressources lorsqu'elles ne sont plus nécessaires.
- Fermeture automatique : Cette interface permet une gestion automatique des ressources dans les instructions try-with-resources.
- Lisible: Cette interface permet de lire les données du flux.
Constructeurs de PipedReader
Cette classe se compose de quatre 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. PipedReader() : Ce constructeur crée un PipedReader qui n'est encore connecté à aucun rédacteur.
Syntaxe:
public PipedReader()
2. PipedReader (int pipeSize) : Ce constructeur crée unPipedREader avec une taille de tuyau spécifiée.
Syntaxe:
public PipedReader (int pSize)
3. PipedReader (PipedWriter src) : Ce constructeur crée un PipedReader connecté au src PipedWriterStream.
PipedReader public (PipedWriter src)
4. PipedReader (PipedWriter src int pipeSize) : Ce constructeur crée un PipedReader connecté avec une taille spécifiée et lié au PipedWriter donné.
Syntaxe:
public PipedReader (PipedWriter src int pSize)
Méthodes Java PipedReader
L'image ci-dessous montre les méthodes de la classe PipedReader.
Nous allons maintenant discuter de chaque méthode une par une en détail :
1. lire() : Cette méthode est utilisée pour obtenir le caractère suivant du PipedReader. Il se bloque jusqu'à ce qu'il y ait des données à lire ou qu'une erreur se produise.
Syntaxe:
public int read() lance IOException
- Paramètre: Cette méthode ne prend aucun paramètre.
- Type de retour : Cette méthode renvoie le caractère suivant sous forme d'entier ou renvoie -1 si la fin du flux est atteinte.
Exemple:
Java // Demonstrating the working // of read() method import java.io.* ; public class GeeKs { public static void main ( String [] args ) throws IOException { PipedReader r = new PipedReader (); PipedWriter w = new PipedWriter (); // Connect the reader and writer r . connect ( w ); // Write data to the PipedWriter w . write ( 71 ); System . out . println ( 'Read: ' + ( char ) r . read ()); w . write ( 69 ); System . out . println ( 'Read: ' + ( char ) r . read ()); w . write ( 75 ); System . out . println ( 'Read: ' + ( char ) r . read ()); } }
Sortir
Read: G Read: E Read: K
2. read(char[] carray int offset int maxlen) : Cette méthode est utilisée pour lire jusqu'à maxlen caractères de PipedReader Stream vers le tableau de caractères. La méthode se bloque si la fin du Stream est atteinte ou si une exception est levée.
Syntaxe:
public int read (char[] carray int offset int maxlen) lance IOException
- Paramètre: Cette méthode comprend trois paramètres répertoriés ci-dessous :
- carray: C'est le tampon dans lequel les données seront lues.
- compenser: C'est la position de départ dans le tableau
- maxlen : Le nombre maximum de caractères à lire dans le tableau.
- Type de retour : Cette méthode renvoie maxlen octets de données sous forme de valeur entière ou renvoie -1 si la fin du flux est atteinte.
Exemple:
Java // Demonstrating the working // of read(char[] carray int offset int maxlen) 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 ); // Write data to PipedWriter w . write ( 71 ); // G w . write ( 69 ); // E w . write ( 75 ); // K w . write ( 83 ); // S // Read data into an array char [] b = new char [ 5 ] ; r . read ( b 0 5 ); System . out . print ( 'Read characters: ' ); for ( char c : b ) { System . out . print ( c ); } } }
Sortir
Read characters: GEKS
Cette méthode est utilisée pour fermer le PipedReader.
Syntaxe:
public void close() lance IOException
- Paramètre:
- Type de retour : Cette méthode ne renvoie rien
Exemple:
Java // Demonstrating the working // of close() method 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 ); w . write ( 71 ); // Close the reader r . close (); System . out . println ( 'Stream closed.' ); } }
Sortir
Stream closed.
4. prêt() : Cette méthode permet de vérifier si le flux est prêt à être lu.
Syntaxe:
public boolean ready() lance IOException
- Paramètre: Cette méthode ne prend aucun paramètre
- Type de retour : Cette méthode renvoie vrai si le flux est prêt à être lu sinon elle renvoie faux.
Exemple:
Java // Demonstrating the working // of ready() method 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 ); w . write ( 71 ); // Check if the stream is ready to be read System . out . println ( 'Stream is ready to be read: ' + r . ready ()); } }
Sortir
Stream is ready to be read: true
5. fermer() : Cette méthode est utilisée pour fermer les flux PipedReader.
Syntaxe:
public vide fermer()
- Paramètre: Cette méthode ne prend aucun paramètre.
- Type de retour : Cette méthode ne renvoie rien.
Exemple:
Java // Demonstrating the working // of close() method import java.io.* ; public class Geeks { public static void main ( String [] args ) { try { // Create a PipedReader and PipedWriter PipedReader r = new PipedReader (); PipedWriter w = new PipedWriter (); // Connect the PipedReader to the PipedWriter r . connect ( w ); // Write a character to the PipedWriter w . write ( 'A' ); // Read and print the character from the PipedReader System . out . println ( 'Read: ' + ( char ) r . read ()); // Output: A // Close the PipedReader stream r . close (); System . out . println ( 'Stream closed.' ); } catch ( IOException e ) { e . printStackTrace (); } } }
Sortir
Read: A Stream closed.Créer un quiz