Classe Java PipedReader

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.

Classe io.PipedReader en Java


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