使用しているAPIにOutputStream
を指定する必要がありますが、実際には出力の必要はありません。 Javaには> /dev/null
と同等のOutputStream
がありますか?]
Javaはそう思わないかもしれませんが、Apache Commons IOはそうです。以下を見てください。
お役に立てば幸いです。
/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
@Override
public void write(int b) throws IOException {
}
}
まだ言及されていないので、Guava 's ByteStreams . nullOutputStream()、一部の人はApache CommonsよりもGuavaを好むかもしれません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)
には空のメソッドがあります体。これは、Common IO NullOutputStream
クラスが行うことです。
Java 11)なので、まさに必要なことを行う静的ユーティリティ、静的ファクトリーメソッド OutputStream.nullOuputStream()
:
すべてのバイトを破棄する新しいOutputStreamを返します。返されるストリームは最初は開いています。 close()メソッドを呼び出すと、ストリームが閉じられます。その後のclose()の呼び出しは効果がありません。
標準ライブラリAFAIKにはありませんが、OutputStreamで書き込みをオーバーライドして作成することは難しくありません。
いいえ。ただし、実装は非常に簡単です。
この質問を参照してください "コードベースからSystem.out.printlnを削除する方法"
そして、あなたはただする必要があります:
System.setOut( DevNull.out );
またはそのようなもの:)
町には新しい男の子がいます。これは魅力のように世話をします。ほんの数行のコードで動作するはずです。そのJDK 11および nullWriter() が導入されており、これはこれを処理します。オペレーティングシステム(OS)を気にせずに、同じ古い問題、新しい方法に対処するコードを示します。
String fileContent = "Welcome to StackOverflow readers !! Here goes the question link...";
Writer writer = Writer.nullWriter();
writer.write(fileContent);
writer.close();
これが誰かを助けることを願っています!
私はこれがあなたが探しているものだと信じています、私は同じものを探していました:これは標準エラーからの出力ストリームをリダイレクトするためのもので、ProcessBuilderオブジェクトの標準出力です。
ブロッククォート
pb.redirectError( ProcessBuilder.Redirect.appendTo( new File( "NUL:" ) ) );