用Buffer方法
int c;
while((c=bis.read())!=-1){
bos.write(c);
bos.flush();
}
中是怎么把srcFile中的数据写入到destFile中的?
此处的read()方法返回的是一个字节,那为什么定义的是int c 呢?不应该是byte c么?有老铁回答下么?谢谢!!
你说的c代表一个长度,是FileInputStream中的read()方法,
read(byte[] b,
int off, int len)
从此输入流中将最多 len 个字节的数据读入一个
byte 数组中。
此时返回的c是读入缓冲区的字节总数,也就是你指的长度了。
你可以查看inputstream的read()方法
read()
从输入流中读取数据的下一个字节
c是一个byte
更直观一点的话,你可以通过打印c并且通过对c被写入的次数计数来看
int c; int count=0; while((c = bis.read())!= -1){ System.out.println(c); count++; bos.write(c); bos.flush(); } System.out.println("c被写入了"+count+"次");
c=bis.read()来读取,bos.write(c)将要写入的c放入缓冲区,bos.flush()刷新缓冲区,也将c写入文件中了