Je dois spécifier un OutputStream
pour une API que j'utilise, mais je n'ai pas vraiment besoin de la sortie. Java a-t-il un OutputStream
équivalent à > /dev/null
?
java
outputstream
Brandon Yarbrough
la source
la source
la source
OutputStream nullOutputStream = new OutputStream() { @Override public void write(int b) { } };
Java ne semble pas, mais Apache Commons IO le fait. Jetez un œil à ce qui suit:
https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/output/NullOutputStream.html
J'espère que cela pourra aider.
la source
Il n'est pas mentionné, donc je vais aussi ajouter Goyave de ByteStreams . nullOutputStream () , car certains pourraient préférer Guava à Apache Commons IO ou l'avoir déjà dans leur projet.
Remarque: si vous utilisez une ancienne version de Guava (de 1.0 à 13.0), vous souhaitez utiliser com.google.io.NullOutputStream .
la source
Revoir les réponses déjà fournies -
Java n'a pas de
NullOutputStream
classe. Vous pouvez cependant lancer le vôtreOutputStream
qui ignore toutes les données qui y sont écrites - en d'autres termeswrite(int b)
,write(byte[] b)
etwrite(byte[] b, int off, int len)
qui aura des corps de méthode vides. C'est ce que fait laNullOutputStream
classe Common IO .la source
Pas dans la bibliothèque standard AFAIK, mais il ne devrait pas être difficile d'en créer une en remplaçant l'écriture dans OutputStream
la source
Non, mais c'est assez facile à mettre en œuvre.
Voir cette question "Comment supprimer System.out.println de la base de code"
Et puis il vous suffit de:
Ou quelque chose comme ça :)System.setOut (PrintStream)
la source
Java 11 a ajouté OutputStream.nullOutputStream ()
la source
Il y a un nouveau garçon dans la ville, qui s'occupe de ça comme un charme, juste quelques lignes de code devraient fonctionner. Son JDK 11 et nullWriter () y ont été introduits, qui s'en charge. Voici le code pour traiter le même vieux problème, une nouvelle façon sans se soucier du système d'exploitation (OS).
J'espère que cela peut aider quelqu'un!
la source
Je pense que c'est ce que vous recherchez, je recherchais la même chose: il s'agit de rediriger les flux de sortie à partir d'une erreur standard, standard dans les objets ProcessBuilder.
la source
ByteArrayOutputStream
est ce que vous voulez (en supposant que l'API produira du texte). Juste instancier un nouveau.la source