java普通io(stream)处理文件读写的过程
来源:互联网 发布:java观察者模式例子 编辑:程序博客网 时间:2024/05/20 18:55
场景:使用java的stream,从文件a读取内容,然后写进文件b,整个过程如下图所示(以linux系统为例)
步骤解析:
1.用户空间向内核空间发出指令——我要读取文件a
2.系统切换上下文,从用户空间切到内核空间,内核空间准备向硬盘读取内容
3.硬盘内容以DMA形式读取进内核缓冲区(tips:DMA——Directory Memory Access 直接内存访问)
4.系统切换上下文,从内核空间切到用户空间,把内核空间的缓冲区的内容写入用户缓冲区
5.业务逻辑处理
6.准备写入b文件,用户空间向内核空间发出指令——我要写文件b,并且把用户缓冲区的内容写入内核缓冲区
7.系统切换上下文,从用户空间切到内核空间,内核空间准备向硬盘写入内容
8.写入成功,系统返回
9.系统切换上下文,从内核空间切到用户空间,内容写入完毕
可以看到,传统的io操作,从一个文件的读取到写入,需要进行4次数据拷贝,4次的系统上下文切换
阅读全文
0 0
- java普通io(stream)处理文件读写的过程
- java文件读写(IO)
- Java stream 文件和IO
- 泛函编程(37)-泛函Stream IO:通用的IO处理过程-Free Process
- 泛函编程(35)-泛函Stream IO:IO处理过程-IO Process
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- java.io.IOException:stream closed 异常的原因及处理
- JAVA IO读写文件
- Java IO 读写文件
- JAVA-IO读写文件
- java IO读写文件
- Java IO 读写文件
- Java IO 读写文件
- Java IO文件读写
- Java IO 文件读写相关的操作
- 自举
- Glide图片加载
- java 连接MySQL的一般步骤
- LeetCode-76-Minimum Window Substring 尺取法+字典
- 使用maven创建一个spring-boot项目-集成springmvc
- java普通io(stream)处理文件读写的过程
- 【小组会整理】adaboost算法
- PHPExcel导出大量数据超时及内存错误解决方法
- Codeforces 591A Wizards' Duel
- 有权图的最短路径
- 一个好刷题的网站
- POJ-3617Best Cow Line(贪心)(白书2.2.3)
- 分割字符串
- 遗传算法——小白