主要代码如下,请大神指点:
public File saveFile(Response response, final int id) throws IOException
{
InputStream is = null;
byte[] buf = new byte[2048];
int len = 0;
FileOutputStream fos = null;
try
{
is = response.body().byteStream();
final long total = response.body().contentLength();
long sum = 0;
File dir = new File(destFileDir);
if (!dir.exists())
{
dir.mkdirs();
}
File file = new File(dir, destFileName);
fos = new FileOutputStream(file);
while ((len = is.read(buf)) != -1)
{
sum += len;
fos.write(buf, 0, len);
final long finalSum = sum;
OkHttpUtils.getInstance().getDelivery().execute(new Runnable()
{
@Override
public void run()
{
inProgress(finalSum * 1.0f / total,total,id);
}
});
}
fos.flush();
return file;
}finally {
try {
response.body().close();
if (is != null) is.close();
} catch (IOException e) {}
try {
if (fos != null) fos.close();
} catch (IOException e) {}
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…