BufferedInputStream缓存区问题

BufferedInputStream bufferedInputStream =
new BufferedInputStream(
new FileInputStream(srcFile));

byte[] data = new byte[8192];

while(bufferedInputStream.read(data) != -1) {
bufferedOutputStream.write(data);
}

问:
BufferedInputStream自带8192缓存区 为什么书上的例子却申请了字节数组data,然后调用bufferedInputStream.read(data)方法 这样并不能证明整个读取过程起到缓存作用的是BufferedInputStream本身自带的缓存区啊 而是证明了我们外部申请的缓存区data。
请各位大虾帮忙解惑

你这代码有问题,应该是:
byte[] data = new byte[8192];
int len;
while((len=bufferedInputStream.read(data)) != -1) {
bufferedOutputStream.write(data,0,len);
data数组只是接收数据的,不是缓冲区的意义,每次读出来的大小不一定是8192,所以要加个len变量