在Java中将StreamWriter转换为OutputStream?

12 java io stream

我试图使用System.setOut将System.out重定向到一个String,它接受一个PrintStream.有没有办法将StringWriter转换为Stream,以便我可以将它传递给setOut?

Yuv*_*dam 26

你不能完全这样做,因为StringWriterWriter,而不是Stream.但你可以这样做:

// create a ByteArray stream, which will be wrapped by a PrintStream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
System.setOut(ps);

// print whatever you got
String result = baos.toString();
Run Code Online (Sandbox Code Playgroud)