web-dev-qa-db-ja.com

stdoutをJavaの文字列にリダイレクトします

Stdoutをファイルにリダイレクトする方法は知っていますが、文字列にリダイレクトする方法がわかりません。

28
Fengqian Li

はい-ByteArrayOutputStreamを使用できます:

_ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.setOut(new PrintStream(baos));
_

次に、baos.toString()を使用して文字列を取得できます。

エンコーディングを指定するには(プラットフォームで定義されているものに依存しないで)、PrintStream(stream, autoFlush, encoding)コンストラクターとbaos.toString(encoding)を使用します。

元のストリームに戻す場合は、次を使用します。

_System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
_
54
Bozho