Bonjour tout le monde,
Dans l'exemple ci-dessous de Jeam-Michel Doudoux (Développons en Java), je n'ai pas encore le déclic sur cette façon d'instancier (voir ligne du BufferedReader) et le choix des classes et méthodes pour arrriver à afficher le contenu, j'explique plus bas mon raisonnement:
Ma façon de comprendre/de faire est la suivante:
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 import java.io.BufferedReader; import java.io.InputStreamReader; public class TestRuntime2 { public static void main(String[] args) { try { Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec("cmd.exe /c set"); BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream())); String str; while ((str = in.readLine()) != null) { System.out.println(str); } in.close(); proc.waitFor(); } catch (Exception e) { e.printStackTrace(); } } }
1 - La méthode getInputStream va retourner une classe au nom de InputStream.
2 - Avec Cette classe InputStream, je ne peux pas encore afficher le contenu (résultat) sur mon écran.
3 - Comme je ne connais pas toutes les classes et méthodes de Java, je fais une recherche grâce à l'outil http://javasearch.developpez.com
4 - Je clic sur 6.0, j'encode InputSream dans la zone d'encodage, je clic sur classes et j'appuie sur OK
5 - J'obtiens une liste de 34 classes correspondant à ma recherche
6 - Je me focalise sur le package java.io du fait que je veux voir le résultat (entrée, sortie) cela me semble logique
7 - Il me reste les classses suivantes:
8 - A ce moment, je commence à me perdre qu'elle est la classe que je dois choisir !!!BufferedInputStream ; ByteArrayInputStream; DataInputStream ; FileInputStream ; FilterInputStream ; InputStream ; InputStreamReader ; LineNumberInputStream ; ObjectInputStream ; ObjectInputStream.GetField ; PipedInputStream ; PushbackInputStream ; SequenceInputStream ; StringBufferInputStream
9 - Bon ok je prends InputStreamReader parce qu'il est noté Reader mais je ne suis pas convaincu, je trouve cela trop façile/léger (pq pas la classe ObjectInputSream ou autres) ?
10 - InputStreamReader m'offre quelques méthodes basées sur la lecture de caractère pas très pratique.
11 - Je remarque que la classe InputStreamReader hérite de la classe java.io.Reader
12 - Je vois que la classe InputStreamReader hérite de la classe java.io.Reader
13 - Je vois que cette classe java.io.Reader à des sous classes, je prends la sous classe BufferedReader car celle-ci contient une méthode qui me permet d'afficher ma ligne de texte.
Je ne sais pas si ma façon de faire est bonne, je n'ai pas l'impression, qu'en pensez-vous ?
Dois-je connaitre toutes les classes et méthodes de java ?
Dois-je utiliser une autre approche pour élaborer mon code/programme ?
Dois-je chercher des exemples sur Google pour avoir un bout de code pour savoir comment afficher du texte à partir d'une classe précise ?
Est-qu'il existe un diagramme des classes de base de Java afin d'avoir une meilleur visualisation (relation entre elle ainsi que les méthodes) ?
Bref, je suis un peu perdu (noyé par tous les choix: classes et méthodes) !
En outre, n'y-a-t'il moyen d'instancier différement (voir ci-dessous), car étant débutant, je trouve cela hard (pas très lisible)
Code : Sélectionner tout - Visualiser dans une fenêtre à part BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
Pouvez-vous m'aider ?
Merci d'avance,
Yves
Partager