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.
InformationsquelleAutor dgrant | 2011-01-25