一个Java实现的工具,能下载Github issue里包含的图片到本地
2023-09-14 09:03:08 时间
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 webservice实现_JAVA WebService的实现方式
- java.library.path_java的path的设置路径
- java 缓存工具类初始化_Java缓存框架
- Java中对Array数组的常用操作详解编程语言
- Java通过Fork/Join来优化并行计算详解编程语言
- java File读取本地文件,判断是否存在详解编程语言
- 使用Java操作MySQL数据库快速精准查询(java查询mysql数据库)
- 机制Redis Java 实现的过期机制研究(redisjava过期)
- 时间设置Java中Redis设置过期时间的方法(redisjava过期)
- 应用『Java应用程序中Redis缓存的使用』(redis缓存与java)
- Java如何启动MySQL?(java启动mysql)
- MSSQL与Java的数据库连接实践(mssql连接java)
- 实现Java认证让你离Oracle更近一步(java认证oracle)
- Java程序构建Oracle数据库直连(java直连oracle)
- java随机事件分发器示例