En Java, comment puis-je rediriger Système.à null puis retour vers stdout de nouveau?
J'ai essayé de rediriger temporairement le Système.vers /dev/null en utilisant le code suivant mais il ne fonctionne pas.
System.out.println("this should go to stdout");
PrintStream original = System.out;
System.setOut(new PrintStream(new FileOutputStream("/dev/null")));
System.out.println("this should go to /dev/null");
System.setOut(original);
System.out.println("this should go to stdout"); //This is not getting printed!!!
Quelqu'un a des idées?
- Je vois deux lignes fines sur mon système. Je suis à l'aide de Java 6 update 22.
- BTW: Méfiez-vous de la manipulation du Système.comme cela, sans plus large de synchronisation pour prévenir les interactions simultanées par plusieurs threads.
Vous devez vous connecter pour publier un commentaire.
L'homme, ce n'est pas si bon, parce que Java est multi-plateforme et "/dev/null' est spécifiques à Unix (apparemment il y a une alternative à Windows, lisez les commentaires). Donc votre meilleure option est de créer un OutputStream pour désactiver la sortie.
Vous pouvez utiliser la classe NullPrintStream ci-dessous comme:
Et la classe NullPrintStream est...
Vieille question, je le sais, mais ne serait-ce petit trait de faire le tour sur Windows?
System.setOut(new PrintStream(new File("NUL")));
Beaucoup moins de code et à l'air assez direct pour moi.
Je pense que le Système.sera(null); devrait fonctionner aussi. Au moins, il a travaillé pour moi.