Java虚拟机中,读取/写入文件的IO操作需要调用系统接口。
读:read()
写:write()
一、标准访问文件方式
应用程序调用系统接口read,操作系统系统检查内核高速缓存是否有需要数据,有缓存则直接读取,没有则从磁盘读取。读取操作同上。
二、直接IO方式
不需要做高速缓存,直接从物理磁盘读取数据(减少数据复制到缓存的过程,节省时间)。对于热点数据可做预加载(先加载进内存中),常用在数据库管理系统中。
三、同步访问文件方式
读取和写入都是同步操作,只有数据被成功写入磁盘中时才返回给应用程序(不成功则一直阻塞),性能较差,操作速度慢,但是安全性能高。
四、异步访问文件方式
应用程序发出访问文件线程请求时,马上返回,应用程序不会阻塞,继续处理当前线程的其它事情,当请求成功后返回给应用程序(提高应用程序效率)
五、内存映射方式
将操作系统内存地址和磁盘文件关联起来,当要访问内存某段数据时,相当于直接访问磁盘文件数据(减少用户空间缓存数据的复制)