温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:02
各位同学大家好,欢迎继续收看上硅谷Java n IO课程,咱们继续来看一下关于缓冲区的操作,刚才呢给大家演示了三个,分别是缓冲区分片,只读缓冲区,包括直接缓冲区,然后咱们现在看第四个,它叫做内存映射文件IO,那这是什么意思呢?给大家再解释一下啊,内存映射文件IO是一种如何写文件数据的一种方式,它比常规的基于流或者基于通道的这种IO要快很多,因为它是基于内存这个操作,而它里边各位注意啊,大家要理解这个特点,它这里面并不是把整个文件都读到内存中,而它是怎么做的呢?一般来说只是文件中你实际读取过或者写入的部分才会映射到内存中,所以这个叫内存映射文件IO,然后我这里边有段。
01:02
示例代码,这个代码因为比较简单,我给各位直接复制一下,我们来看一下这段代码它的相关特点,然后咱们来看一下啊,首先我在这里边呢,比如现在我已经提前建立一个方法,这一方法我就叫B04。我在上面加上一个注释,它就叫做内存。映射的。这么一个文件的IO操作,然后在里边呢,我把这个代码给各位,咱就直接复制过来。来我们来看一下啊,首先在里边。这位置我定义两个固定值,其实就是它的开始位置,包括它的技术位置,然后在里边我写了一段代码,这代码给个位直接复制过来。我们来看一下啊。首先各位看特点啊,第一部分在里边我们了一个就是random size。
02:00
咱做了一个这么一个操作。有一场我加上一个。直接给他throw出去。然后加上之后呢,我们看啊,首先得到一个,在得到之后,大家注意这里边我一个对象,这个对象叫map bit buffer,就通过这个内存映射做这个操作,然后里边有一个map方法来做到它这个映射关系,包括它有开始位置,有它的这个size,就是start size,然后最终往里边放数据,根据它的索引往里边放内容,最终把它再做个close。所以这个呢,就是我们提到的内存映射的文件IO里边就是这么一个特点,而这个过程中再重复一遍啊,它的过程呢,并不是把整个文件都读到内存中,而是只有文件中实际读取或者写入的部分才会映射到内存中,而映射到内存中之后,比传统这种流或者通道的方式肯定要快很多,所以这些就是针对我们缓冲区的操作,各位把这几个都知道,包括分片只读直接还有内存映射,所以这部分给各位就最终也是完成了。
我来说两句