问:Java内部BufferedInputStream如何工作?
从文件读取期间,如何或由谁将字节从文件带到内部缓冲区?
是否BufferedInputStream一次从内部缓冲区读取1个字节?
答:公共本地int read()引发IOException;
这是对操作系统的本地调用,该操作系统使用磁盘读取单个字节。这是一项繁重的操作。
对于BufferedInputStream,该方法委托给一个重载的read()方法,该方法读取8192个字节的字节并对其进行缓冲,直到需要它们为止。它仍然仅返回单个字节(但保留其他字节)。这样,BufferedInputStream对操作系统进行较少的本地调用即可从文件读取。