在Java中将StreamWriter转换为OutputStream?

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

你不能完全这样做,因为StringWriter是一个Writer ,而不是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();