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();} } }Le résultat attendu étant bien sur que le programme m'affiche deux fois ce que je saisi au clavier.
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();} } }
Voila voila
Et merci d'avance![]()
Partager