Мне нужно указать OutputStream
для API, который я использую, но на самом деле мне не нужен вывод. Является ли Java эквивалентом OutputStream
для > /dev/null
?
Есть ли Null OutputStream в Java?
Ответ 1
Java не кажется, но Apache Commons IO делает. Посмотрите на следующее:
Надеюсь, это поможет.
Ответ 2
/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
@Override
public void write(int b) throws IOException {
}
}
Ответ 3
Он еще не упоминается, поэтому я также добавлю Guava ByteStreams nullOutputStream(), поскольку некоторые из них могут предпочесть Guava над Apache Commons IO или уже имейте это в своем проекте.
Примечание. Если вы используете более старую версию Guava (от 1.0 до 13.0), вы хотите использовать com.google. io.NullOutputStream.
Ответ 4
Повторная передача ответов уже предоставлена -
Java не имеет класса NullOutputStream
. Однако вы можете использовать свой собственный OutputStream
, который игнорирует любые записанные на него данные, другими словами write(int b)
, write(byte[] b)
и write(byte[] b, int off, int len)
будут иметь пустые тела методов. Это то, что делает класс Common IO NullOutputStream
.
Ответ 5
Начиная с Java 11, есть статическая утилита, которая делает именно то, что вам нужно, метод статической фабрики OutputStream.nullOutputStream()
:
Возвращает новый OutputStream, который отбрасывает все байты. Возвращенный поток изначально открыт. Поток закрывается путем вызова метода close(). Последующие вызовы close() не имеют никакого эффекта.
Ответ 6
Не в стандартной библиотеке AFAIK, но создать ее не должно быть сложно, переопределив запись в OutputStream
Ответ 7
Нет, но это довольно легко реализовать.
Смотрите этот вопрос "Как удалить System.out.println из базы кода"
И тогда вам просто нужно:
System.setOut( DevNull.out );
Или что-то в этом роде:)
Ответ 8
В городе есть новый мальчик, который заботится об этом, как обаяние, только несколько строк кода должны работать. Его JDK 11 и nullWriter() были введены там, который заботится об этом. Здесь приведен код для решения той же старой проблемы, нового способа, не беспокоясь об операционной системе (ОС).
String fileContent = "Welcome to Qaru readers !! Here goes the question link...";
Writer writer = Writer.nullWriter();
writer.write(fileContent);
writer.close();
Надеюсь, это может кому-то помочь!
Ответ 9
Я считаю, что это то, что вы ищете, я искал то же самое: Это предназначено для перенаправления выходных потоков из стандартной ошибки, стандартной в объектах ProcessBuilder.
Blockquote
pb.redirectError( ProcessBuilder.Redirect.appendTo( new File( "NUL:" ) ) );
- Дом
Ответ 10
ByteArrayOutputStream
- это то, что вы хотите (при условии, что API будет выводить текст). Просто создайте новый экземпляр.