précédent | suivant | table des matières

PipedReader

Une instance de la classe PipedReader doit être connectée à un objet PipedWriter.

Les données sont lues à partir d'un objet PipedReader par un thread et les données sont écrites dans l'objet PipedWriter correspondant par un autre thread. On parle de pipe.

Constructeurs :

PipedReader ()
Crée un PipedReader non connecté à un PipedWriter.
PipedReader (PipedWriter pw)
Crée un PipedReader connecté à pw.

Les méthodes sont les méthodes héritées de Reader plus la méthode connect :

void connect (PipedWriter pw)
Connecte le PipedReader à pw. Lève une IOException si le PipedReader est déjà connecté.

Exemple :

public class Sortie extends Thread {
   PipedWriter sortie;
   public Sortie(PipedWriter sortie) {
      super();
      this.sortie = sortie;
   }
   public void run(){
      try {
         for( int k = 0; k<20; ++k){
            int i = (int)(Math.random()*100);
            sortie.write((char) i);
            System.out.println(">>> "+i);
            sleep(200);
         }
         s.close();
      }catch (IOException e) {
         e.printStackTrace();
      }catch (InterruptedException e) {
         e.printStackTrace();
      }
   }
}
public class Entree extends Thread {
   PipedReader entree;
   public Entree(PipedReader entree) {
      super();<
      this.entree = entree;
   }
   public void run(){
      try {
         int i = entree.read();
         while(i != -1){
            System.out.println("  "+(char)i+"  >>>");
            i = entree.read();
         }
      }catch (IOException e) {
          e.printStackTrace();
      }
   }
}
PipedWriter pos = new PipedWriter();
try {
PipedReader  pis = new PipedReader(pos); Sortie sp = new Sortie(pos); Entree ep = new Entree(pis); sp.start(); ep.start(); } catch (IOException e) { e.printStackTrace(); }

haut de la page