android 下载文件

    /**
     * 下载文件
     *
     * @param urlpath
     *            下载路径
     * @param savePath
     *            保存路径
     * @throws FileNotFoundException
     * @throws IOException
     * @throws InterruptedException
     */
    public static void downloadFile(String urlpath, String savePath)
            throws FileNotFoundException, IOException, InterruptedException {
        // 将字符串形式的path,转换成一个url
        InputStream inStream = null;
        FileOutputStream fos = null;
        char[] ch = urlpath.toCharArray();  
         for (int i = 0; i < ch.length; i++) {
             char c = ch[i];  
             if (isChinese(c)) {
                 String string =java.net.URLEncoder.encode(String.valueOf(ch[i]),"UTF-8");
                 urlpath = urlpath.replaceAll(String.valueOf(c), string);
            }
         }
        
        URL url = new URL(urlpath);

        // 得到url之后,将要开始连接网络。
        // 首先,实例化一个HTTP连接对象conn
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        // 定义请求方式为GET。
        conn.setRequestMethod("GET");
        // 定义请求时间,在ANDROID中最好是不好超过10秒。否则将被系统回收。
        conn.setConnectTimeout(5 * 1000);
        if (conn.getResponseCode() == 200) {
            File file = new File(savePath);
            file.getParentFile().mkdirs();
            file.delete();
            file.createNewFile();
            fos = new FileOutputStream(file);
            // 返回码为真
            // 从服务器传递过来数据,是一个输入的动作。定义一个输入流,获取从服务器返回的数据
            inStream = conn.getInputStream();
            byte[] buffer = new byte[50 * 1024];
            int len = 0;
            while ((len = inStream.read(buffer)) != -1) {
                fos.write(buffer, 0, len);
                Thread.sleep(200);
            }
        }
        inStream.close();
        fos.close();

    }


 private static final boolean isChinese(char c) {  
        Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);  
        if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS  
                || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS  
                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A  
                || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION  
                || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION  
                || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {  
            return true;  
        }  
        return false;  
    }

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值