2009-03-27 4 views

Répondre

3

Pas dans la bibliothèque standard AFAIK, mais il ne devrait pas être difficile de créer une écriture en remplaçant dans OutputStream

+0

Pourquoi est-ce se downvoted? Il est en effet trivial de mettre en œuvre cette solution, comme McDowell l'a montré plus haut. – pdxleif

14

Rehashing les réponses déjà fournies -

Java n'a pas de classe NullOutputStream. Vous pouvez cependant lancer le vôtre OutputStream qui ignore 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 Common IO NullOutputStream.

+0

ici http://alvinalexander.com/java/jwarehouse/commons-io -2.0/src/main/java/org/apache/commons/io/sortie/NullOutputStream.java.shtml – Aftershock

96
/**Writes to nowhere*/ 
public class NullOutputStream extends OutputStream { 
    @Override 
    public void write(int b) throws IOException { 
    } 
} 
+11

Cela peut aussi être facilement mis en œuvre chaque fois que vous en avez besoin d'utiliser quelque chose comme ceci: 'OutputStream nullOutputStream = new OutputStream() { @Override écrire public void (int b) { } };' –

-3

ByteArrayOutputStream est ce que vous voulez (en supposant que l'API sera sortie du texte). Juste instancier un nouveau.

+0

Cette C'est une mauvaise idée car vous accumulez des données en mémoire au lieu de les jeter. Et si l'écrivain écrit 15 Go d'ordure à votre BAOS? Ça pourrait arriver. – phyzome

0

Je crois que c'est ce que vous cherchez, je cherchais la même chose: Ceci est pour rediriger les flux de sortie de l'erreur standard, standard dans les objets ProcessBuilder.

Blockquote

pb.redirectError(ProcessBuilder.Redirect.appendTo(new File("NUL:"))); 
  • Dom
+0

Ceci est spécifique à Windows. – peterh

Questions connexes