Je dois spécifier OutputStream
pour une API que j'utilise, mais je n'ai pas réellement besoin de la sortie. Est-ce que Java a une OutputStream
équivalente à > /dev/null
?
Java ne semble pas, mais Apache Commons IO le fait. Jetez un oeil à ce qui suit:
J'espère que cela pourra aider.
/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
@Override
public void write(int b) throws IOException {
}
}
Ce n'est pas encore mentionné, donc j'ajouterai aussi Guava 's ByteStreams . nullOutputStream (), car certains pourraient préférer Guava à Apache Commons IO ou l'ont déjà dans leur projet.
Remarque: Si vous utilisez une version antérieure de Guava (versions 1.0 à 13.0), vous souhaitez utiliser com.google.io.NullOutputStream .
Rehausser les réponses déjà fournies -
Java n'a pas de classe NullOutputStream
. Vous pouvez toutefois lancer votre propre variable OutputStream
qui ignore toutes les données qui y sont écrites. En d'autres termes, write(int b)
, write(byte[] b)
et write(byte[] b, int off, int len)
auront des corps de méthode vides. C’est ce que fait la classe IO NullOutputStream
commune.
Depuis Java 11, il existe un utilitaire statique qui répond exactement à vos besoins: une méthode de fabrique statique OutputStream.nullOuputStream()
:
Renvoie un nouveau OutputStream qui supprime tous les octets. Le flux renvoyé est initialement ouvert. Le flux est fermé en appelant la méthode close (). Les appels ultérieurs à close () n'ont aucun effet.
Pas dans la bibliothèque standard AFAIK, mais il ne devrait pas être difficile d'en créer un en remplaçant l'écriture dans OutputStream
Non, mais c'est assez facile à mettre en œuvre.
Voir cette question "Comment supprimer System.out.println de Codebase"
Et puis il vous suffit de:
System.setOut( DevNull.out );
Ou quelque chose comme ça :)
Je pense que c’est ce que vous recherchiez. Je recherchais la même chose: Il s’agit de rediriger les flux de sortie d’une erreur standard, sortie standard dans les objets ProcessBuilder.
Blockquote
pb.redirectError( ProcessBuilder.Redirect.appendTo( new File( "NUL:" ) ) );