DownloadUtil-下载工具类

一、DownloadUtil实现的功能

  • 从给定的url上接受图片数据
  • 保存图片数据到本地

二、具体步骤

1.初始化路径;(这里选择自己所需要的路径即可);
private static final String FILE_PATH = Environment.getExternalStorageDirectory() + File.separator+...
2.初始化一个网络请求 request 、一个异步发送网络请求 call、一个写磁盘的子线程mThread、一个文件 file;
DownloadRequest request;
Call<ResponseBody> call;
File file;
Thread thread;
3.根据路径创建文件,需要判断该文件是否已经存在,不存在则创建,存在则返回文件
File file =new File(FILE_PATH);
4.根据url创建请求,方式与retrofit相同,在resonse中开启子线程用于写磁盘操作
public void onResponse(Call<ResponseBody> call, final Response<ResponseBody> response) {
                    Thread = new Thread() {
                        @Override
                        public void run() {
                            super.run();
                            //写磁盘
                            writeFileDisk(response, File);
                        }
                    };
                   thread.start();
                }
5.开始写磁盘,初始化写入长度,总长度,输入流,输出流
currentLen = 0
OutputStream output = new FileOutputStream(file);
InputStream input = response.body().byteStream();
totalLength = response.body().contentLength()
//开始写;需要try--catch操作
try{
byte[] buff = new byte[1024]
int len;
//先从输入流读到缓存区,再从缓存区读到写出文件中
while((len != input.read(buff)!= -1)){
output.write(buff,0,len)
currentLen += len;//表示当前进度
}finally{
if(output != null){
try{
output.close();
}
if(input != null){
try{
input.close();
}
}
}

 

posted on 2022-05-25 15:28  suanningmeng98  阅读(206)  评论(0编辑  收藏  举报