zoukankan      html  css  js  c++  java
  • 用Wget进行下载

    wget下载可以不用考虑资源的双向认证的问题,即

    wget -N -S -O " + filePath + " " + urlStr + " --no-check-certificate

    所以java自带的下载方式可能不是所有的资源都能下载,而wget可以,并且wget支持断点续传,默认是20次重复的下载机会。并且下载异常稳定。

    public long download(String urlStr, String filePath){
    String wget = "wget -N -S -O " + filePath + " " + urlStr + " --no-check-certificate";
    log.info("----------执行语句---------" + wget);
    System.out.println(wget);
    Runtime r = Runtime.getRuntime();
    log.info("-------------------------------urlStr------cbj------1" + urlStr);
    Process p = null;
    long fileLength = -1;
    boolean flag = false;
    try {
    p = r.exec(wget);
    final InputStream is1 = p.getInputStream();
    final InputStream is2 = p.getErrorStream();
    BufferedReader br2 = new BufferedReader(new InputStreamReader(is2));
    String line2 = null;
    while ((line2 = br2.readLine()) != null) {
    System.out.println("错误流" + line2);
    if(line2.indexOf("200 OK") != -1){
    flag = true;
    }
    if(line2.indexOf("Content-Length") != -1 && flag){
    fileLength = NumberUtils.toLong(line2.split(":")[1].trim());
    break;
    }
    }
    Task task = new Task(is2);
    executor.submit(task);
    return fileLength;
    }catch(Exception e){
    e.printStackTrace();
    }
    return fileLength;
    }

  • 相关阅读:
    牛客(14)链表中倒数第k个结点
    牛客(13)调整数组顺序使奇数位于偶数前面
    牛客(12)数值的整数次方
    牛客(11)二进制中1的个数
    牛客(10)矩形覆盖
    牛客(9)变态跳台阶
    牛客(8)跳台阶
    牛客(7)斐波那契数列
    Docker数据卷
    Docker镜像
  • 原文地址:https://www.cnblogs.com/caobojia/p/5943520.html
Copyright © 2011-2022 走看看