javaIO简单总结

主要参考这篇文章http://blog.csdn.net/wong_judy/article/details/5267911

输入流                <-->                输出流

inputStream                              outputStream

reader                                      writer

字节流                <-->                字符流

xxxStream                                 reader/writer

 

节点流                <-->                装饰流

InputerStream                       FilterInputStream 

总结

    类太多了,根本记不住,所以归纳了以上几个比较不规范的规律

    1.字符类的流通常都是使用Reader/Writer结尾,且都是他们的儿孙;

        例外: (inputStreamReader/outputStreamWriter,这两个流的作用是 字节流-->字符流的桥接,我没找到反向的流,应该是没必要吧.)

    2.字节流通常都是InputStream/OutputStream结尾,而且也都是他们的儿孙

        例外太多了

    3.使用流的时候基本思路是:

        3.1使用节点流链接节点.

        3.2使用装饰流装载节点流, (装饰流也可以装载装饰流,但是骨子里必须是节点流,这点应该好理解吧?)

        3.3使用装饰流进行业务逻辑的处理

        3.4用完之后直接关闭装饰流就可以了

    4.装饰流的超类都是这两对的子孙

        4.1 第一对: FilterReader/FilterWriter  字符的装饰流

        4.2 第二对: FilterInputStream/FilterOutputStream 字节的装饰流

    5.如果遇到某些字符流提供的方法未明确指出编码方式,那么它默认使用你当前项目的编码方式

    6. 流的方式一般建议成对出现,以避免出现异常,比如xxxInputStream 那么请使用对应的xxxOutputStream,一般来说xxx是相同的,

       如果没找到对应的,那么可以去思考一下自己的思路是否有误

 

 

还可以参考

http://www.ibm.com/developerworks/cn/java/j-lo-javaio/

你可能感兴趣的:(javaIO简单总结)