zoukankan      html  css  js  c++  java
  • 网络文件下载

    这是我自己写的文件下载:

    如果下载链接中有汉字,请先对汉字部分进行转码 在进行文件下载,注意在线程中下载文件,

    单下载文件

     /**
         * 下载文件
         *
         * @param downloadURL 要下载的文件网络路径
         */
        private void downloadFile(String downloadURL) {
            FileOutputStream outputStream=null;
            InputStream inputStream=null;
            try {
                if (downloadURL == null) {
                    Log.e("download", "脉盘下载文件的链接地址为空");
                    return;
                }
                //获取SD卡的根目录
                String absolutePath = Environment.getExternalStorageDirectory().getAbsolutePath();
                //你要把文件下载到那个文件夹,targetDir就这个文件夹的名称
                File rootFolder = new File(absolutePath + "/targetDir");
                if (!rootFolder.exists()) {
                    rootFolder.mkdirs();
                }
                File folder = new File(absolutePath + "/targetDir");
                if (!folder.exists()) {
                    folder.mkdirs();
                }
                //如果这个文件是MP4文件,后缀名suffix=.mp4
                String suf = ".mp4";
                //文件的名字
                String fileName = "myVideo";
                String saveFileName = Environment.getExternalStorageDirectory().getAbsolutePath()
                        + "/targetDir" + fileName + suf;

                URL url = new URL(downloadURL);
                //打开连接
                URLConnection conn = url.openConnection();
                //打开输入流
                 inputStream = conn.getInputStream();
                //获得长度
                final int contentLength = conn.getContentLength();
                //先在本地看下这个文件存不存在,
                File destinationFile = new File(saveFileName);
                if (destinationFile.exists()) {
                    //如果存在就把他删了,避免下载的文件和原来已有的文件重复了
                    destinationFile.delete();
                }
                //创建字节流
                byte[] bs = new byte[1024];
                int len;
                 outputStream = new FileOutputStream(destinationFile);
                int mSize = 0;
                //写数据
                while ((len = inputStream.read(bs)) != -1) {
                    //已下载数据大小
                    mSize += len;
                    outputStream.write(bs, 0, len);
                }
                //下载完成
                Log.e("download","下载完成,文件保存在:"+saveFileName+"这个路径");
            } catch (IOException e) {
                //如果下载失败了,就会打印日志
               Log.e("download","下载文件异常msg:" + e.getMessage());
                e.printStackTrace();
            } finally {
                //不管有没有下载成功都要把流关掉
                if (outputStream!=null){
                    try {
                        outputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (inputStream!=null){
                    try {
                        inputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
  • 相关阅读:
    中国科学院2021年硕转博考试分析试题参考解答
    蒲和平大学生数学竞赛教程答案5.1.3
    清华大学2021年数学推荐免试试题参考解答
    蒲和平大学生数学竞赛教程答案4.1.1
    兰州大学历年数学分析高等代数考研试题答案
    复旦大学2021年数学英才实验班选拔考试试题参考解答pdf
    北京大学2021年基础学科招生考试数学试题
    南开大学2021年数学伯苓班/复旦大学2021年数学英才实验班选拔考试试题
    实变函数与泛函分析第05次课:至1.5.2(请点阅读全文进课堂)
    中国科学技术大学2021年新生入学考试试题
  • 原文地址:https://www.cnblogs.com/rocksmall/p/8085943.html
Copyright © 2011-2022 走看看