开发者社区 问答 正文

在程序里读取磁盘文件时为什么需要使用缓冲区

java中,读取磁盘文件时,通常都使用BufferedInputStream包装FileInputStream。
但是操作系统内核读取磁盘文件时,不是会将内存作为磁盘文件的缓冲区吗?
那为什么还要在程序里自己使用缓冲区?

展开
收起
蛮大人123 2016-03-12 15:05:12 2631 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    因为操作系统要将用户空间和系统空间隔离呀, 以保护数据安全. 准确的说, 操作系统在读取文件的时候是将文件读入系统空间, 然后再拷贝给应用程序进程的用户空间, 也就是题主说的程序自己的缓冲区. 如果让用户进程直接操作系统空间的缓冲区, 操作系统岂不是不安全了.

    2019-07-17 19:00:58
    赞同 展开评论
问答分类:
问答地址: