将PrintStream转换为PrintWriter

MBZ*_*MBZ 9 java stream

是否有任何可能的转换PrintStream方式PrintWriter(反之亦然)除了使用WriterOutputStreamapache常见的方法之外?

Eng*_*uad 15

要转换PrintStreamPrintWriter,请使用构造函数:PrintWriter(OutputStream out)

使用该构造函数,您可能会获得不正确的编码,因为PrintStream它具有编码但使用PrintWriter(OutputStream out)忽略它并且只使用系统的默认字符集.如果您不希望系统默认,则必须将编码保留在单独的字段或变量中,并使用:

pw = new PrintWriter(new OutputStreamWriter(myPrintStream, encoding));
Run Code Online (Sandbox Code Playgroud)

哪里encoding可以(例如)"UTF-8"或一个实例Charset.

  • 您可以通过pw = new PrintWriter(System.out);来模拟System.out.println()。 (2认同)