有朋友问我每天哪里找时间写这么多文章。

作为一个程序员,当然要善于利用各种工具提高自己做事情的效率了。如果没有现成的工具,就得自己造。

我写文章一般是在云笔记里编辑,完成之后直接复制粘贴到自媒体平台。我有一个需求,能够把云笔记里包含的所有图片批量下载到本地某个文件夹里,这样我就可以批量上传文件到自媒体平台,省去了手工一张张上传的麻烦。

我曾经写过一篇文章:使用ABAP批量下载有道云笔记中的图片,然而ABAP在程序员中间不是很普及,于是我又写了一个Java版本的。

使用方式很简单。

我们知道每篇有道云笔记都有一个独一无二的uuid作为标识。把这个uuid复制粘贴,

把拷贝的值放到第82行main行数的guid变量里,直接执行,可以看到输出,首先我的代码会判断这个笔记包含了多少张图片,然后会以多线程的方式去并行下载图片。

最后所有下载好的图片都存储在一个和笔记同名的文件夹下面:

多线程下载的核心代码如下,我使用了JDK里提供的ExecutorService:

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");
}

完整代码在我的github上,请随意下载使用:

https://github.com/i042416/JavaTwoPlusTwoEquals5/tree/master/src/youdao

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

最新文章

  1. javascript平时小例子⑨(小型抽奖功能)
  2. caffe: test code for Deep Learning approach
  3. android学习笔记二
  4. HDU 1754 I Hate It(线段树)
  5. NSDate简单的使用
  6. SpringMVC之访问静态文件
  7. (数字IC)低功耗设计入门(三)——系统与架构级
  8. dev gridControl 自定义绘制列头颜色
  9. JAVA 第五周学习总结
  10. 文本分类TextCNN
  11. 转载 javascript中(function($){...})(jQuery)写法是什么意思
  12. 配置SSH服务使用证书登录Ubuntu服务器
  13. VS:&quot;64位调试操作花费的时间比预期要长&quot;的一解决途径
  14. 为什么setinterval和settimeout越点击越快以及响应的解决办法
  15. 20145204 《Java程序设计》第7周学习总结
  16. Openfire更服务器名称后报Found RSA certificate that is not valid for the server domain的解决方法
  17. Python验证码识别处理实例
  18. MSDE2000
  19. Rails的静态资源管理(五)—— 自定义 Asset Pipeline
  20. MultiBinding的StringFormat参数问题

热门文章

  1. MySql的备份还原
  2. java项目部署总结
  3. whatwg-fetch
  4. JSON跨域问题总结
  5. Silverlight &amp; Blend动画设计系列十:Silverlight中的坐标系统(Coordinate System)与向量(Vector)运动
  6. Azure 上 Linux 虚拟机 Mac 地址的持久化
  7. php发送邮件功能(PHPMailer-master插件)
  8. golang学习之regexp
  9. nodejs的jsonrpc调用
  10. SSRS使用MySql作为数据源遇到的问题。