您的位置:首页 > 编程语言 > Java开发

JAVA I/O(1)

2016-05-05 23:29 288 查看

Java io分类:

基于字节操作的I/O接口:InputStream和OutputStream;

基于字符操作的接口:Writer和Reader

基于磁盘操作的:File。

基于网络操作的:Socket

(socket类并不在java..io下)

读取和写入文件都要调用操作系统提供的接口才能完成,因为磁盘设备是操作系统内管理的。读写分别对应read(),write()两个系统调用,操作系统为了加速I/O,在内核空间采用缓存机制,如果用户程序访问的是同一段磁盘地址空间数据,则操作系统直接从内核缓存中的高速缓存中取出返回给用户程序(前提是高速缓存中有的话,如果没有还是要去磁盘上读取,然后缓存在高速缓存中)。

两种访问文件的方式:

同步访问:在标准访问的方式基础上,只有数据成功写到磁盘时才返回给应用程序成功的标志,性能差但安全性高

异步访问:当访问数据的线程发出请求后,线程会去处理其他事情而不是阻塞等待,当请求的数据返回后继续处理下面的操作。这样可以提高整个程序的效率。

Java访问磁盘文件

文件是操作系统和磁盘驱动器交互的最小单元。当File被指定一个路径描述符时,会返回一个代表这个路径的虚拟对象,可以是一个文件或则是一个路径。那么当真正要读这个文件时,才会去检查这个文件存不存在,当创建一个FileInputStream类对象时,会创建一个FileDescriptor对象(它代表了一个真正存在对象的描述,可以通过调用FileDescriptor.sync())方法将操作系统缓存中的数据刷新到物理磁盘中)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java io