当我使用 FileInputStream 读取对象(比如几个字节)时,底层操作是否涉及:
1)读取整个磁盘块,以便如果我随后执行另一个读取操作,它不需要真正的磁盘读取,因为文件的那部分已经在上次读取操作中获取?
或者
2) 因为FileInputStream 没有做任何缓冲,而应该使用bufferedInputStream 来实现(1) 的效果,所以发生了新的磁盘访问?
我认为由于 FileInputStream 使用 read 系统调用并且它只从硬盘读取一组页面,因此必须进行一些缓冲。