JAVA IO流

来源:互联网 发布:linux 打印目录树 编辑:程序博客网 时间:2024/05/22 03:13
首先,I/O是一个看起来很复杂的知识块。也只是看起来罢了。对于I/O的理解其实刚接触都会感到繁琐和陌生,那么不妨可以采用图像化的思维来理解流。目标文件像是一个水池,正如Stream我们需要用管道来取水,而如果水里面有杂质,我们就需要用转换流或者缓冲流来过滤一样。I/O的分类:按照功能可以分为:节点流和处理流,按照目标数据可以分为:字节流和字符流。字节流是一个字节一个字节的读;而字符流是两个字节两个字节的读。因此二者之间就有了较大的差异,比如一个汉字是两个字节,那么使用字节流读取则会带来乱码的问题。按照大体上来说又可以分为输出流(Input)输出流(Output)。
I/O有四个父接口:InputStream OutputStream Reader Writer各个流的操作对象不同:操作文件的:FileInputStream FileReader FileOutputStream FileWriter操作内存数组:BytearrayinputStream BytearrayOutputStream(存放该数组的计算机内存是一个队列)以上的都是一些节点流就是直接和数据接触。接下来就是各种处理流。转换流:InputStreamReader OutputStreamReader 转换流的好处就是可以套结在字节流身上,字节流从内存里一个字节一个子节的读取数据,然后经过转换流之后会将相邻的两个字节一起送到缓冲流,不会出现乱码的情况。
缓冲流:BufferedIputStream BufferedOutputStream BufferedReader BufferedWriter这是最外层的管道缓冲流的好处就是可以提供一块缓冲区域给流,还有一个比较好用的方法readline()用法可以自己查API打印流:PrintStream PrintWriter都属于输出流,分别针对字节和字符做处理。不会抛出异常,有自动flush()功能Object流属于对内容进行序列化,比如可以用在画图工具中保存一张图片,对图片进行整体的输入和输出,有利于数据的整体性,和计算机的高效性
0 0
原创粉丝点击