Мне нужно указать OutputStream
API, который я использую, но на самом деле мне не нужны выходные данные. Есть ли у Java OutputStream
эквивалент > /dev/null
?
java
outputstream
Брэндон Ярбро
источник
источник
источник
OutputStream nullOutputStream = new OutputStream() { @Override public void write(int b) { } };
Кажется, что в Java нет, а в Apache Commons IO - нет. Взгляните на следующее:
https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/output/NullOutputStream.html
Надеюсь, это поможет.
источник
Это еще не упоминается, так что я буду также добавить гуавы «s ByteStreams . nullOutputStream () , поскольку некоторые могут предпочесть Guava над Apache Commons IO или уже имеют его в своем проекте.
Примечание. Если вы используете старую версию Guava (от 1.0 до 13.0), вы хотите использовать com.google.io.NullOutputStream .
источник
Перефразируя уже предоставленные ответы -
В Java нет
NullOutputStream
класса. Однако вы можете свернуть свой собственный,OutputStream
который игнорирует любые записанные в него данные - другими словамиwrite(int b)
,write(byte[] b)
иwrite(byte[] b, int off, int len)
будет иметь пустые тела методов. Это то, чтоNullOutputStream
делает класс Common IO .источник
Не в стандартной библиотеке AFAIK, но создать ее, переопределив запись в OutputStream, не составит труда.
источник
Нет, но это довольно просто реализовать.
См. Этот вопрос «Как удалить System.out.println из кодовой базы»
И тогда вам просто нужно:
Или что-то вроде того :)System.setOut (PrintStream)
источник
В Java 11 добавлен OutputStream.nullOutputStream ()
источник
В городе появился новый мальчик, который заботится об этом как обаяние, всего несколько строк кода должны работать. Здесь представлены его JDK 11 и nullWriter () , которые позаботятся об этом. Вот код для решения той же старой проблемы новым способом, не беспокоясь об операционной системе (ОС).
Надеюсь, это может кому-то помочь!
источник
Я считаю, что это то, что вы ищете, я искал то же самое: это для перенаправления выходных потоков из стандартной ошибки, стандартной для объектов ProcessBuilder.
источник
ByteArrayOutputStream
это то, что вы хотите (при условии, что API будет выводить текст). Просто создайте новый экземпляр.источник