io操作需要调用操作系统的接口才能完成。
以读操作为例:
发起系统调用;
切换至内核态;
从硬件设备读取数据至内核缓冲区;
cpu复制数据至用户缓冲区;
切换回用户态;
大致就是这么几步。
写操作类似。
参考:https://www.cnblogs.com/dynas/p/6908739.html
在java中,io操作通过inputStream以及outputStream来抽象,内部定义了若干read方法,打开源码可以看到,实现都是native的,因为需要调用操作系统的指令,所以具体实现需要和操作系统相关,已经超出了java语言所能处理的范畴。