为什么要使用ByteArrayOutputStream?
我的看法是,有时InputStream里面的内容很大,不能一次读完,需要一个中转站来储存里面的数据,而不是需要一次数据就又打开InputStream来读取一次。
而ByteArrayOutputStream就是个很好的中转站,他用自身来存储大量byte数据,需要使用时,只要调用toByteArray()返回byte数组就好。
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte [] buf = new byte[1024];//用1k做缓存
int len = 0;
//如果InStream读不到数据,就返回-1.用while循环一直读取
while((len=inStream.read(buf))!=-1){
System.out.println(len);
outStream.write(buf,0,len);
}
inStream.close();
outStream.close();
//返回byte数组
outStream.toByteArray()