虽然像FileOutputStream、OutputStreamWriter这些输出流可以输出信息,但是其会要求把数据先处理为字符串或字节数组,使用不便。为此在Java IO体系专门提供了两个打印流——PrintStream 字节打印流 、PrintWriter 字符打印流。二者均重载了print、printf 等函数,方便开发者直接输出打印其它类型的数据
PrintStream 字节打印流
PrintStream其支持多种构造方式,如下所示。值得一提的是PrintStream是对字节输出流的包装,所以即使是从文件中直接创建字节打印流,其构造方法内部也是先构造一个FileOutputStream字节输出流
public
这里一个实例来演示如何通过 PrintStream 字节打印流来直接输出数据
// 字节打印流 测试用例
从下面的测试结果可以看出,我们不仅可以通过 print、println 方法直接输出打印其它类型的数据,还可以通过printf实现格式化输出
PrintWriter 字符打印流
同样地,PrintWriter 也是对字符输出流的包装,所以虽然其构造函数支持从文件、字节输入流中构造,但是构造函数内部均先构造了一个BufferedWriter实例
public
这里一个实例来演示如何通过 PrintWriter 字符打印流来直接输出数据
public
可以看出,PrintWriter 与 PrintStream 相比,在输出打印的使用上,并无明显区别
System.out.println
我们在日常开发经常会用 System.out.println 来向控制台打印输出信息,其实 out 就是System类中一个PrintStream类型的静态成员变量
参考文献
- Java核心技术·卷II 凯.S.霍斯特曼著