file = createSDFile(path + fileName);
output = new FileOutputStream(file);
byte buffer[] = new byte[4 * 1024];
int temp;
while ((temp = input.read(buffer)) != -1) {
output.write(buffer, 0, temp);
//output.write(buffer,0,buffer.length);
}在while循环里的这两句,有没有什么区别啊?
为什么结果差了好多,不止4*1024
output = new FileOutputStream(file);
byte buffer[] = new byte[4 * 1024];
int temp;
while ((temp = input.read(buffer)) != -1) {
output.write(buffer, 0, temp);
//output.write(buffer,0,buffer.length);
}在while循环里的这两句,有没有什么区别啊?
为什么结果差了好多,不止4*1024
temp不断变化的原因是:InputStream的read(buffer)方法返回的是读入bufer的数据长度,而这个长度是不定的。