PrintStream是一种FilterOutputStream,它在OutputStream的接口上,额外提供了一些写入各种数据类型的方法

  • 写入int print(int)
  • 写入boolean print(boolean)
  • 写入String print(String)
  • 写入Object print(Object),实际上相当于print(Object.toString());

以及对应的一组pintln()方法,它会自动加上换行符。

我们经常使用的System.out.println()实际上就是使用PrintStream打印各种数据。其中,Ssytem.out是系统默认提供的PrintStream,表示标准输出

  1. System.out.print(12345);
  2. System.out.println(new Object());
  3. System.out.println("hello");

PrintWriter

PrintStream最终输出的总是byte数据,而PrintWWriter则是扩展了Writer接口,它的print()println()方法最终输出的是char数据。

public class Main {
    public static void main (String[] args){
      StringWriter buffer = new StringWriter();
    try(PrintWriter pw = new PrintWriter(buffer)) {
        pw.println("hello");
      pw.println(12345);
      pw.println(true);
    }

    System.out.println(buffer.toString());
  }
}

小结

PrintStream是一种能接收各种数据类型的输出,打印数据时比较方便。

  • System.out是标准输出
  • System.err是标准错误输出

PrintlnWriter是基于Writer的输出。