Salut

Ça va faire plusieurs jours déjà que je m'acharne à vouloir faire marcher un pipe en Java. Mon erreur est peut être hyper simple, mais je ne veux pas de réponses du genre : "cherche sur google". Je suis loin d'être un débutant en Java, pourtant là, quelque chose m'échappe. Voila mon code (je vous passe les imports):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
public class tst {
 
	public static void main(String[] args) {
 
		PipedInputStream pis = new PipedInputStream();
		PipedOutputStream pos = null;
		try {
			pos = new PipedOutputStream(pis);
		} catch (IOException e) {
			e.printStackTrace();
		}
 
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		OutputStreamWriter ow = new OutputStreamWriter(pos);
		String s = "";
 
		th T = new th(pis);
		T.start();
 
		try {
			while(true) {
				s = br.readLine();
				System.out.println(s);
				ow.write(s);
			}
		} catch (IOException e) {e.printStackTrace();}
 
	}
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public class th extends Thread {
 
	private PipedInputStream pis;
 
	public th(PipedInputStream is) {
		this.pis = is;
	}
 
	public void run() {
 
		BufferedReader br = new BufferedReader(new InputStreamReader(this.pis));
 
		while(true)
			try {
				System.out.println(br.readLine());
			} catch (IOException e) {e.printStackTrace();}
	}
}
Le résultat attendu étant bien sur que le programme m'affiche deux fois ce que je saisi au clavier.

Voila voila
Et merci d'avance