标签:pre 包括 端口 增加 -o 使用场景 编码 操作 ima
IO应该是平时项目里最常用到的功能了,无论是简单的文件读取,还是服务器端口监听,都会用到IO;但是,在面对Java IO包里庞杂的IO基础类库时,经常会很头大,是该选择InputStream
还是应该选择Reader
,应该为InputStream
增加一个Buffer
吗?如何根据应用场景选择合适的类库是摆在很多代码人员面前的一个难题,这里我将Java IO包里的常用类库做了一个梳理,包括它们的组织结构,功能特性,适用场景等,以方便后续使用时能方便快捷的根据需求选取最合适的IO类
根据解析图,从大的层面可以IO进行两个维度的划分:
Writer/Reader
or OutputStream/InputStream
Reader/InputStream
or Writer/OutputStream
Java IO的所有操作都无外乎这两种维度四大主类的扩展,大部分比较简单,下面对于稍微难理解以及值得注意的点进行单独说明
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
FileInputStream
和FileOutputStream
就分别对应于文件的读和写;PipedInputStream
和PipedOutputStream
分别对应于管道数据的读和写OutputStreamWriter
);如需要在网络上或内存里存储的数据,一般都是以字节的形式;又或者文件的写入,文本类的文件这种本身就是字符编码的一般是字符形式,而对于图片,视频等文件则只能使用字节的形式本文主要对基本的IO类做了简单的梳理,并就IO中的基本概念以及如何使用IO基础类库做了说明,当然,本文并未罗列所有的IO实现类,感兴趣的同学可以自己查看Java的文档或源码,同时本文也未如何自己定制IO类库,其实一般情况下Java提供的基础类库足以满足需求;另外Java在1.4后引入了NIO,即:No Blocking IO,它与原IO的使用场景有一定区别
Java学习交流QQ群:589809992 禁止闲聊,非喜勿进!
标签:pre 包括 端口 增加 -o 使用场景 编码 操作 ima
原文地址:http://www.cnblogs.com/aishangJava/p/7594307.html