Stdoutをファイルにリダイレクトする方法は知っていますが、文字列にリダイレクトする方法がわかりません。
はい-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)));
_