本帖最后由 文涛 于 2013-11-13 19:22 编辑
首先输出流最上层的是OutputStream,OutputStream就是负责输出流的,但是这个类太过笼统,以至于他的方法很多都不能针对某个方面优化。在实际使用中面向文件的输出,管道输出等都是应用非常多的,如果使用OutputStream来实现,非常麻烦,于是,针对常用的一些方面,JDK使用了很多子类来实现一些常用的功能,例如面向文件输出操作的FileOutputStream,以及过滤流FilterOutputStream等。
但是在使用FilterOutputStream面向文件的操作中,我们发现,这个问题还是太过笼统,其中有很多细小的分支需要我们去实现,于是,又是实现了FilterOutputStream这个类的子类来实现一些更加细致的功能,你可以看看PrintStream的API,他可以非常方便的打印各种数据值表示形式。可以单独打印浮点数,双精度数,以及各类格式。
总之,为什么会有这么多的子类,那么他们的存在是有道理的,因为在应用中的方面很多,一个大类不可能实现所有方法,这样会非常臃肿,分为很多小的子类是一个比较好的方法。
因此当你需要做一些打印动作,指定一些格式的时候,PrintStream比其他的流都有优势
|