Bonsoir,
s'il vous quelqu'un peut m'aider comment recupérer le resultat de la console de l'eclipse dans un fichier.txt en java? merci d'avance
Bonsoir,
s'il vous quelqu'un peut m'aider comment recupérer le resultat de la console de l'eclipse dans un fichier.txt en java? merci d'avance
Bonjour,
les sorties console qui vous intéressent sont-elles les messages d'exceptions ?
Si oui, en interceptant les exceptions, vous pouvez obtenir le texte grâce à la methode getMessage().
Vous pouvez ainsi décider de diriger ce flux vers un fichier grâce à java.io.PrintWriter:En espérant que je ne sois pas hors sujet...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 try { PrintWriter fluxSortie = new PrintWriter( "texte console.txt" ); fluxSortie.printf( exception.getMessage()); fluxSortie.close(); } catch( Exception e ) { System.err.println( e ); }
@ bientôt...
Ceci pourrait t'aider.
Voici un code qui redirige toutes les sorties consoles (ERR et OUT) vers un fichier TEXTE et vers la console....
Que l'on demarre et stop avec les methods start et stop
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 public class ConsoleRedirector extends PrintStream { static OutputStream logfile; static PrintStream oldStdout; static PrintStream oldStderr; public static String LogFile = ""; ConsoleRedirector(PrintStream ps) { super(ps); } // Starts copying stdout and //stderr to the file f. public static void start(String f_OUT) throws IOException { LogFile = f_OUT; // Save old settings. oldStdout = System.out; oldStderr = System.err; // Create/Open logfile. logfile = new PrintStream(new FileOutputStream(f_OUT)); // Start redirecting the output. System.setErr(new ConsoleRedirector(System.err)); System.setOut(new ConsoleRedirector(System.out)); } // Restores the original settings. public static void stop() { System.setErr(oldStderr); System.setOut(oldStdout); try { logfile.flush(); logfile.close(); } catch (Exception e) { e.printStackTrace(); } } // PrintStream override. @Override public void write(int b) { try { logfile.write(b); } catch (Exception e) { e.printStackTrace(); setError(); } super.write(b); } // PrintStream override. @Override public void write(byte [] buf, int off, int len) { try { logfile.write(buf, off, len); } catch (Exception e) { e.printStackTrace(); setError(); } super.write(buf, off, len); } }
Rtg : Il manquerait pas un flush dans ton code ? (a moins que le close n'appele le flush ?)
(Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Bonsoir,
apparemment il n'y a pas besoin de flush(), j'ai essayé ce code avec l'exemple suivant:Le fichier est créé dans le répertoire où se trouve le code JAVA est contient le texte "/ by zero"
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 try { int t = 0; int i = 0; t = i / t; // Provoque l'exception E } catch ( Exception E ) { try { PrintWriter fluxSortie = new PrintWriter( "texte console.txt" ); fluxSortie.printf( E.getMessage()); fluxSortie.close(); } catch( Exception e ) { System.err.println( e ); } }
Donc je pense que la vidange du buffer vers le fichier doit se faire avec l'instruction close().
Dans la doc, il est indiqué que cette instruction libère toutes les ressources associées à l'objet.
@ bientôt...
rtg: il vaux mieux utiliser exception.printStackTrace(PrintWriter)![]()
Dans eclipse, menu Run > Run configurations..., dans l'onglet Common de ta configuration de Run, tu peux mettre un fichier dans lequel sera redirigée la sortie console.
Partager