126

使用しているAPIのを指定する必要がありますOutputStreamが、実際には出力は必要ありません。JavaにはOutputStream同等のものがあり> /dev/nullますか?

4

9 に答える 9

118
/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
  @Override
  public void write(int b) throws IOException {
  }
}
于 2009-03-28T10:38:45.790 に答える
70

Java はそうではないように見えますが、Apache Commons IO はそうです。以下を見てください。

https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/output/NullOutputStream.html

それが役立つことを願っています。

于 2009-03-27T23:36:19.673 に答える
46

まだ言及されていないので、GuavaByteStreamsも追加します。nullOutputStream()、Apache Commons IOよりもGuavaを好む人もいれば、プロジェクトにすでにGuavaを持っている人もいます。

注:古いバージョンのGuava(1.0から13.0)を使用する場合は、com.google.io.NullOutputStreamを使用する必要があります。

于 2012-05-22T18:45:10.487 に答える
15

すでに提供されている回答の再ハッシュ -

NullOutputStreamJava にはクラスがありません。ただし、書き込まれたデータを無視する独自のロールを作成することもできます。OutputStreamつまりwrite(int b)、空のメソッド本体を持つことになりますwrite(byte[] b)write(byte[] b, int off, int len)これが Common IONullOutputStreamクラスの機能です。

于 2009-03-27T23:51:41.023 に答える
3

いいえ、しかし実装は非常に簡単です。

この質問「コードベースから System.out.println を削除する方法」を参照してください。

そして、次のことを行うだけです。

System.setOut( DevNull.out );

またはそのようなもの:)

System.setOut(PrintStream)

于 2009-03-27T23:45:36.000 に答える
2

町には新しい男の子がいて、これを魔法のように処理します。ほんの数行のコードで機能するはずです。そのJDK 11nullWriter()が導入され、これが処理されます。ここでは、オペレーティング システム (OS) を気にせずに、同じ古い問題を新しい方法で処理するコードを示します。

String fileContent = "Welcome to StackOverflow readers !! Here goes the question link...";
Writer writer = Writer.nullWriter();
writer.write(fileContent);
writer.close();

これが誰かを助けることを願っています!

于 2018-11-25T19:30:53.000 に答える
0

これはあなたが探しているものだと思います、私は同じものを探していました: これは、ProcessBuilder オブジェクトの標準出力、標準エラーからの出力ストリームをリダイレクトするためのものです。

引用符

pb.redirectError( ProcessBuilder.Redirect.appendTo( new File( "NUL:" ) ) );
  • ドム
于 2014-09-10T17:45:39.663 に答える