先给一个文件输入流添加缓冲功能:
FileInputStream fis = new FileInputStream("data");
BufferedInputStream bis = new BufferedInputStream(fis);那么在第一次调用read()方法之前,BufferedInputStream类是已经将默认的8192字节大小的缓冲区填满了,还是当我们调用read方法后,这个类才将8192字节的buf填满?是不是只有当缓冲区的数据已经空了的时候,BufferedInputStream类才会从"data"这个文件中一次性地读入8192字节的数据放到缓冲区呢?BufferedInputStream
FileInputStream fis = new FileInputStream("data");
BufferedInputStream bis = new BufferedInputStream(fis);那么在第一次调用read()方法之前,BufferedInputStream类是已经将默认的8192字节大小的缓冲区填满了,还是当我们调用read方法后,这个类才将8192字节的buf填满?是不是只有当缓冲区的数据已经空了的时候,BufferedInputStream类才会从"data"这个文件中一次性地读入8192字节的数据放到缓冲区呢?BufferedInputStream
2、是的。你可以查看jdk源码就清楚了。