Bonjour,
Je souhaiterais récuperer le contenu de la console java dans une variable pour pouvoir l'ecrire à la demande de l'utilisateur. Mais j'ignore comment.
Merci de votre aide
Bonjour,
Je souhaiterais récuperer le contenu de la console java dans une variable pour pouvoir l'ecrire à la demande de l'utilisateur. Mais j'ignore comment.
Merci de votre aide
Bonjour,
Je n'ai pas compris ce que souhaitez faire au final. pouvez vous détaillez votre demande svp.
Oui bien sûr, en fait il y a un certains nombre de choses qui sont écrite dans la console (erreur et out) et je souhaiterais que l'utilisateur puisse en cliquant sur un bouton créer un fichier texte dans lequel serait écrit toutes les lignes de la console.
Mais pour cela d'après ce que j'ai vu, il faudrait une variable qui intercepte tout les messages envoyés à la console et écrire cette variable dans le fichier texte.
Pourquoi ne pas utiliser un simple :
et idem pour System.err
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 PrintStream ps = new APrintStream(new FileOutputStream(myFile)); System.setOut(ps); System.out.println("test");
La seule chose que tu devra vraiment gérer, c'est le volume de ton fichier : si tu ouvre toujours le même et que tu append des logs dedans, ton fichier ne fera que gonfler.
Penser à un fichier par jour.
Pour l'afficher, il ne te reste plus qu'à lire le fichier
+1
Ecrire dans le fichier à chaque fois qu'on écrit dans la console
Comme je l'ai indiqué, tu n'écris plus dans la console. Le fichier devient la console.
Je sais que ce n'est pas optimum, ceci dit, rien n'empêche de faire fonctionner ses méninges : on peut utiliser un Buffered Stream ou tout autre classe dérivée.
Oui j'ai déjà vu des exemples de ça. Le truc c'est que moi je veux pas qu'il est accès au contenu de la console comme ça. Je veux qu'il puisse le faire à condition d'avoir un mdp qu'il rentre dans le logiciel. Le soucis c'est que si je met le contenu de la console dans un fichier, il y a accès comme ça
Au lieu de l'afficher dans la console tu le stock dans un String.
Un StringBuilder serait même plus adapté à ta situation.
ps : je ne vois toujours pas l'intérêt de cacher le contenue de la console
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 //Avant : System.out.println("blablabla"); System.out.println("blip"); System.out.println("toto"); //Après : StringBuilder strConsole = new StringBuilder(); strConsole.append("blablabla\n"); strConsole.append("blip\n"); strConsole.append("toto\n"); public void showConsole(String leMotDePasseSuperSecretEtBienGarde){ if(leMotDePasseSuperSecretEtBienGarde.equals("1234abcd"){ System.out.print(strConsole.toString()); } }
Ok mais le pb c'est que ta solution ne prend pas en compte les erreur non prévues (ex : NullExceptionPointer) ou les erreur fatales (et accessoirement il faut que je me retappe toute la gestion des erreur )
Mais t'aura plein d'emmerde si t'es à cours de mémoire avec ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ByteArrayOutputStream maDonnéeOut =new ByteArrayOutputStream(); ByteArrayOutputStream maDonnéeErr =new ByteArrayOutputStream(); System.setOut(new PrintStream(maDonnéeOut, false, "UTF-8")); System.setErr(new PrintStream(maDonnéeErr, true, "UTF-8"));
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager