Preciso especificar um OutputStream
para uma API que estou usando, mas na verdade não preciso da saída. Java tem um OutputStream
equivalente a > /dev/null
?
java
outputstream
Brandon Yarbrough
fonte
fonte
fonte
OutputStream nullOutputStream = new OutputStream() { @Override public void write(int b) { } };
Java não parece, mas o Apache Commons IO sim. Dê uma olhada no seguinte:
https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/output/NullOutputStream.html
Espero que ajude.
fonte
Ainda não é mencionado, então eu também vou acrescentar goiaba 's ByteStreams . nullOutputStream () , pois alguns podem preferir o Guava ao invés do Apache Commons IO ou já o tem em seu projeto.
Observação: se você usar uma versão mais antiga do Guava (de 1.0 a 13.0), convém usar com.google.io.NullOutputStream .
fonte
Refazendo as respostas já fornecidas -
Java não tem
NullOutputStream
classe. No entanto, você pode rolar o seu próprioOutputStream
que ignora quaisquer dados gravados nele - em outras palavraswrite(int b)
,write(byte[] b)
ewrite(byte[] b, int off, int len)
terá corpos de método vazios. Isso é o que aNullOutputStream
classe IO comum faz.fonte
Não na biblioteca padrão AFAIK, mas não deve ser difícil criar uma substituindo a gravação em OutputStream
fonte
Não, mas é muito fácil de implementar.
Consulte esta pergunta "Como remover System.out.println da base de código"
E então você só precisa:
Ou algo assim :)System.setOut (PrintStream)
fonte
Java 11 adicionou OutputStream.nullOutputStream ()
fonte
Há um novo garoto na cidade que cuida disso como um encanto, apenas algumas linhas de código devem funcionar. Seu JDK 11 e nullWriter () foram introduzidos lá, que cuidam disso. Aqui vai o código para lidar com o mesmo velho problema, de uma maneira nova, sem se preocupar com o Sistema Operacional (SO).
Espero que isso possa ajudar alguém!
fonte
Eu acredito que é isso que você está procurando, eu estava procurando a mesma coisa: isso é para redirecionar fluxos de saída de erro padrão, padrão em objetos ProcessBuilder.
fonte
ByteArrayOutputStream
é o que você deseja (assumindo que a API produzirá texto). Basta instanciar um novo.fonte