122 votes

Existe-t-il un Null OutputStream en Java?

Je dois spécifier un OutputStream pour une API que j'utilise, mais je n'ai pas réellement besoin de la sortie. Est-ce que Java a un OutputStream équivalent à > /dev/null ?

118voto

McDowell Points 62645
/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
  @Override
  public void write(int b) throws IOException {
  }
}

68voto

Jon Points 23749

Java ne semble pas, mais Apache Commons IO le fait. Jetez un oeil à ce qui suit:

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/output/NullOutputStream.html

J'espère que cela pourra aider.

43voto

haylem Points 11504

Il n'est pas encore mentionné, donc je vais aussi ajouter Goyave's ByteStreams.nullOutputStream(), comme certains pourraient préférer de Goyave sur Apache Commons IO ou ont déjà dans leur projet.

Remarque: Si vous utilisez une ancienne version de Goyave (de 1.0 à 13,0), vous souhaitez utiliser com.google.io.NullOutputStream.

15voto

Vineet Reynolds Points 40529

Rehausser les réponses déjà fournies -

Java n'a pas de classe NullOutputStream . Vous pouvez cependant lancer votre propre OutputStream qui ignore toutes les données qui y sont écrites - autrement dit write(int b) , write(byte[] b) et write(byte[] b, int off, int len) aura vide corps de méthodes. C’est ce que fait la classe Common IO NullOutputStream .

3voto

Uri Points 50687

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X