开发者社区> c位出道> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

一个Java实现的工具,能下载Github issue里包含的图片到本地

简介: 一个Java实现的工具,能下载Github issue里包含的图片到本地
+关注继续查看
package youdao;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class GithubIssueImageDownloader {

    private static final String PREFIX = "C:\\Users\\i042416\\Pictures\\";
    private static final String ISSUEURL = "C:\\Users\\i042416\\git\\JavaTwoPlusTwoEquals5\\src\\youdao\\privateIssue.txt";
    
    private static void createFolder(String title){
        DownloadTask.FOLDER = PREFIX + title;
        File file = new File( DownloadTask.FOLDER);
        file.mkdir();
    }
    
    private static String getUrl(String line){
        int start = line.indexOf("(");
        int last = line.indexOf(")");
        return line.substring(++start, last);
    }
    private static List<DownloadTask> getPicUrlList(){
        int index = 0;
        List<DownloadTask> resultPic = new ArrayList<DownloadTask>();
        BufferedReader br = null;
        try {   
             br = new BufferedReader(new InputStreamReader(new FileInputStream(ISSUEURL ), "utf-8")); 
             String line = null;
             while ((line = br.readLine()) != null) {
                line = getUrl(line);
                DownloadTask task = new DownloadTask( line, index++);
                resultPic.add(task);
             }
             br.close();
        }
        catch (FileNotFoundException e) {
                e.printStackTrace();
        } catch (IOException e1) {
                e1.printStackTrace();
        }
        return resultPic;
    }
    
    private static void start(List<DownloadTask> task){
        if( task.isEmpty()){
            System.out.println("No picture to download!");
            return;
        }
        System.out.println("Total pic to be downloaded: " + task.size());
        ExecutorService executor = Executors.newFixedThreadPool(10);
        
        for( int i = 0; i < task.size(); i++){
            PictureDownloader cc = new PictureDownloader(task.get(i));
            executor.execute(cc);           
        }
        
        executor.shutdown();
        while (!executor.isTerminated()) {
        }
        
        System.out.println("download finished");
    }
    
    public static void main(String[] args) {
        createFolder("Test");
        List<DownloadTask> task = getPicUrlList();
        start(task);
    }
}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java 图片压缩
先上传压缩后的效果图一张: 图片1是压缩前,2是压缩后,这是以最大压缩比压缩的,效果只有自己去看了。 package zhangao.main; import java.
1162 0
Java实现二叉查找树
二叉查找树 基本性质:对任何节点x,其左子树的任意key不大于x.key,其右子树的任意节点不小于x.key 实现集合操作 search,minimum,maximum,predecessor,successor,...
744 0
+关注
文章
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库
立即下载
《Java开发手册》2019最新版发布!
立即下载
阿里巴巴Java开发手册PDF1.2.0版(非最新版)
立即下载