byte[] buffer = null;
try {
InputStream in = entity.getContent();
if (in == null) {
throw new ServerError();
}
buffer = mPool.getBuf(1024);
int count;
while ((count = in.read(buffer)) != -1) {
bytes.write(buffer, 0, count);
}
return bytes.toByteArray();
} finally {}
这一段话基本是访问网络数据的固定格式了。我想问的是,为什么大家用的是1024个字节。现在下载图片,文件随便都会超过这个大小。难道是我理解错了吗
------解决思路----------------------
Buffer 是数据缓冲区,通常意义上的缓冲区,并不保存完整的数据,而是保存即将要处理的部分数据。
当然,如果缓冲区足够大的话,也是能够放下所有数据的。
但是,一般缓冲区不会放置所有的数据。
楼主没有注意到,获得缓冲区的代码后面,还有一个while循环,这个循环在重复使用缓冲区。
每次循环都向缓冲区中填入数据(填入的数据量保存到count里),然后再把缓冲的数据写入其他地方。