IO操作用法简单概述

来源:互联网 发布:微信淘宝群怎么做到的 编辑:程序博客网 时间:2024/05/17 21:32

输入输出流:
file类:http://www.cnblogs.com/qi-dian/p/6132694.html
file类不支持文件内容处理,处理文件内容必须通过流的处理
流分为输入流,输出流1
Java?IO主要主要在java.io包下,分为四大块近80个类:
1、基于字节操作的I/O接口:InputStream和OutputStream
2、基于字符操作的I/O接口:Writer和Reader
3、基于磁盘操作的I/O接口:File
4、基于网络操作的I/O接口:Socket(不在java.io包下)

字符操作流与字节操作流的区别:
字节操作流:(inputStream,OutputStream)
字符操作流:(Reader,Writer)
本质区别;字节流是原生的操作,字符流经过处理后的操作。在你进行网络数据传输 磁盘数据保存,所保存的支持的数据类型只有字节,而所有磁盘中的数据必须
读取到内存中才可以操作,内存会帮助我们将自己额变为字符。
字符更加适合处理中文
基本操作是
根据文件路径创建File类对象
根据字节流或字符流的子类实例化父类对象
进行数据的读取或写入操作
关闭流(close)

对于IO操作属于资源处理,所有对资源的操作的最后必须要进行关闭如果你在项目里没有执行关闭,那么就再也执行不了了。
关闭时在finally块关闭,如果流在try块中声明那么系统将会有自动回收机制(jdk1.8)

以介质是硬盘为例,字节流和字符流的弊端:
在每一次读写的时候,都会访问硬盘。 如果读写的频率比较高的时候,其性能表现不佳。

为了解决以上弊端,采用缓存流。
缓存流在读取的时候,会一次性读较多的数据到缓存中,以后每一次的读取,都是在缓存中访问,直到缓存中的数据读取完毕,再到硬盘中区读取。

就好比吃饭,不用缓存就是每吃一口都到锅里去铲。用缓存就是先把饭盛到碗里,碗里的吃完了,再到锅里去铲

缓存流在写入数据的时候,会先把数据写入到缓存区,直到缓存区达到一定的量,才把这些数据,一起写入到硬盘中去。按照这种操作模式,就不会像字节流,字符流那样每写一个字节都访问硬盘,从而减少了IO操作

原创粉丝点击