Подтвердить что ты не робот

Есть ли Null OutputStream в Java?

Мне нужно указать OutputStream для API, который я использую, но на самом деле мне не нужен вывод. Является ли Java эквивалентом OutputStream для > /dev/null?

4b9b3361

Ответ 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

Ответ 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 будет выводить текст). Просто создайте новый экземпляр.