私は友人がJavaについてよく知らないJavaコードを書くのを手伝っていました。だから私は彼の目にはちょっと変わったことを簡単にやるためのヘルパー機能を書いていました。それらの1つは、OutputStream
に文字列を書き込む関数です。見てください:System.outは閉じられましたか?私はそれを再び開くことができますか?
public void write(String txt, OutputStream out) {
PrintWriter printer = new PrintWriter(out);
printer.print(txt);
printer.close();
}
これで、どこでも簡単にさまざまな方法で書き込むことができます。たとえば、あなたはそれを行うことができます
(new StreamHelper()).write("Hello Test", System.out);
は、私はその後System.out.println()
はもうシェルには何も書き込まないことが分かったことを行います。だから私はおそらくprinter.close()
も自動的に閉じてSystem.out
と思うと私はこの機能が再び終了した後に私はそれを使用することができるようにそれを再アクティブ化するのだろうか。
私の前提は正しいですか? (ここに尋ねることなく私はどのように知りましたか)
write()
関数の呼び出し後に、System.out
を引き続き使用するにはどうすればよいですか?
このようなヘルパー機能を記述するのに良い方法はありますか?
私のために便利になるかもしれませんしかし、あなたは次のように閉じ取得からのストリームを保護するためのファサードを書くことができますあなたは 'close()'の代わりに 'flush'を使うことができます。 –
'write'メソッドを静的にして、'(新しいStreamHelper())。write(...) 'コールを避けることができます。 – adarshr
@Stasクリリン:私はそれを試して、それは動作します。 – erikbwork