为什么使用BufferedInputStream逐字节读取文件比使用FileInputStream更快?
我试图使用FileInputStream将文件读入数组,而一个〜800KB的文件花了大约3秒钟才能读入内存。然后,我尝试了相同的代码,只是将FileInputStream包装到BufferedInputStream中,这花费了大约76毫秒。为什么即使我仍在逐字节读取文件,为什么使用BufferedInputStream逐字节读取文件的速度如此之快?这是代码(其余代码完全无关)。请注意,这是“快速”代码。如果需要“慢速”代码,则只需删除BufferedInputStream: InputStream is = null; try { is = new BufferedInputStream(new FileInputStream(file)); int[] fileArr = new int[(int) file.length()]; for (int i = 0, temp = 0; (temp = is.read()) != -1; i++) { fileArr[i] = temp; } BufferedInputStream快30倍以上。远不止于此。那么,这是为什么呢?有可能使此代码更有效(不使用任何外部库)吗?