java电驴_转:java写的电驴下载完成关机小程序
verycd下载套路,
发现一个downloads.txt文件同步正在下载的资源信息,下载完成后自动删除里面的记录,
思路:读downloads.txt文件,利用关键字把里面的记录分割后加入list,选择监视的文件名,利用while循环的倒计时方法以文件名为关键字从list里定时搜索,如果下载完成,调用runtime类运行dos命令shutdown,执行关机.
代码如下:
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.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
/**
* @author Y 2010/04/01 23:39
*/
public class ShutDown {
// easyMule下downloads.txt文件的路径
public static final String FILEPATH = “D:\\Program Files\\easyMule\\downloads.txt”;
// 查找下载记录数的关键字
public static final String KEYWORD = “ed2k://|file|”;
// 刷新读入downloads.txt的时间(秒)
int second = 5;
// 下载完成后关机的延迟时间(秒)
int times = 60;
// 需要监视的文件id号
int id;
// 监视的文件名称
String fileName;
public ShutDown() {
System.out.println(“当前的下载文件信息为:”);
System.out
.println(“————————————————————–”);
showFile(readText(FILEPATH, KEYWORD));
System.out
.println(“————————————————————–”);
System.out.println(“要等哪个文件下载完成关闭计算机?”);
Scanner scan = new Scanner(System.in);
id = scan.nextInt() – 1;
fileName = (String) readText(FILEPATH, KEYWORD).get(id);
System.out.println(“监视的文件是:” + fileName);
while (countDown(second)) {
if (readText(FILEPATH, fileName).size() == 0) {
shutDownComputer(times);
System.out.println(“计算机将在” + times + “秒内关闭”);
System.out.println(“输入任意内容可取消关闭计算机”);
if (null != scan.next()) {
unShutDownComputer();
}
break;
}
}
}
// 利用线程休眠进行倒计时
public boolean countDown(int second) {
for (int i = second; i >= 0; i–) {
try {
Thread.sleep(1000);
if (i == 0) {
return true;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return false;
}
// 读取文件,查找下载的条目,返回List集合
public List readText(String filePath, String searchWord) {
List list = new ArrayList();
File file = new File(filePath);
InputStreamReader reader = null;
BufferedReader br = null;
try {
// downloads.txt文件采用Unicode编码,需要转码
reader = new InputStreamReader(new FileInputStream(file), “utf-16″);
br = new BufferedReader(reader);
String s1 = null;
while ((s1 = br.readLine()) != null) {
int position = s1.indexOf(searchWord);
if (position != -1) {
s1 = s1.substring(0, position).trim();
list.add(s1);
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
// 查看当前下载的记录数
public void showFile(List list) {
Iterator iter = list.iterator();
int count = 1;
while (iter.hasNext()) {
System.out.println(count + “=>” + iter.next());
count++;
}
}
// 关闭计算机
public void shutDownComputer(int times) {
Runtime run = Runtime.getRuntime();
try {
run.exec(“shutdown -s -t” + ” ” + times);
} catch (IOException e) {
e.printStackTrace();
}
}
// 取消关闭计算机
public void unShutDownComputer() {
Runtime run = Runtime.getRuntime();
try {
run.exec(“shutdown -a”);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ShutDown();
}
}
分享到:
2010-04-12 17:11
浏览 991
评论
java电驴_转:java写的电驴下载完成关机小程序相关推荐
- 分享java写的电驴下载完成关机小程序
自己研究下verycd下载套路,发现一个downloads.txt文件同步正在下载的资源信息,下载完成后自动删除里面的记录,这就简单多了. 思路:读downloads.txt文件,利用关键字把里面的记 ...
- Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP)
Java生鲜电商平台-商品中心的架构设计与源码解析(小程序/APP) 说明:Java生鲜电商平台中,由于商品的架构很大程度决定了电商的扩展性与伸缩性.对此根据自己多年的生鲜电商经验,整理了以下的商品中 ...
- java applet配置_配置Java Applet的运行环境
Java小程序,也就是Java Applet,可以在Web浏览器中运行.Java Applet必须以脚本的形式嵌入到HTML页面中,才能在web浏览器中运行. 之前总以为本地安装了JDK,指定好JAV ...
- 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)
知乎小白第一次写专栏,还请多指教. 先放成果. GitHub源码: lrioxh/HAR-applet-of-Wechatgithub.com b站演示视频: 居然不需要服务器?!如何制作一个简单的 ...
- C语言时间管理小程序,写了一个时间管理的微信小程序
原标题:写了一个时间管理的微信小程序 前言 以前看过<把时间当作朋友>这本书,里面有个管理时间的观点个人觉得很有用,就是养成记录自己每天的时间消耗的一个习惯,这样有助于更有效地管理自己的时 ...
- 批处理写的关机小程序--bat
将以下内容复制到一个文本文档中,把文件的后缀名修改成bat,即可运行本程序. @echo off color 17 title --by windone :windone cls echo %dat ...
- 用Windows自带的工具写一个一键关机小程序
如何用Windows自带的工具写一个一键关机小程序 工具/原料(打勾勾的可用可不用) 装有Windows系统的电脑 在机子上装个格式工厂(版本随意,最好更新到最新的) 制作环境 windows自带命令 ...
- python的简单程序代码_怎么样都要学几个python的简单小程序
虹之菌BUG之前在学Python的时候,参考书上或网上的代码写了几个小程序,发出来算个学习笔记,也请朋友们帮着给找找代码中错误和不严谨的地方. 一.一个简单的下载程序 用过Curl后觉得它的下载功能很 ...
- 怎样用java编写日志_用JAVA写一个日志类程序以供大家学习
中华网络安全联盟 作者:jacoo 来源:本站原创 时间:2006-4-18 说明: 尽管JAVA类库和其他工具提供了不少的纪录程序运行状态的日志类,我发觉也 不是万能的,有时需要根 ...
- java代码课程_助你写出优雅的 Java 代码,8 点建议给你收藏
我越来越担心我作为一个java程序员的未来.恍然间,发现自己在这个行业里已经摸爬滚打了十年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作的过程 ...
最新文章
- 关于RAID与SCSI的一些基本概念(转)
- 工作中不要为了用系统而用系统
- 2018,愿跟大家一起成长!
- UseCase事件描述叙事流规范
- 赛码网算法: 军训队列( python实现 )
- python坐标定位_如何利用Python识别并定位图片中某一个色块的坐标?
- git git 查看远程库_如何从Git远程存储库中提取
- 《偶像爱豆出身的编程语言排行第一得主!谁还敢嘲python没实力?》Python应用与实践
- java .equal_Java 中的equals()方法
- FZU 2108 Mod problem
- 如何设计一个优秀基表结构
- 1.react生命周期详解(2020.12.05)
- 工作流流程部署 一般功能代码
- Tomcat 日志文件分割
- CSS3 transform对fixed元素造成的影响笔记
- 「TJOI 2013」攻击装置
- IDL实现遥感影像融合(批量)TASK(三)
- potplayer最全使用教程,【无边框透明美化教程】+【全球IPTV电视直播教程】+【不用下载观看影视剧教程】!
- 金融二叉树模型-给期权定价
- Poco库使用:单元测试
热门文章
- 共享单车系统的软件测试报告,共享单车APP实验报告模板.docx
- 贪心算法之田忌赛马(超详细)
- 模拟点击框架网页内无id无name的按钮
- “采菊东篱下,悠然见南山”----南山路上品太古 总结
- jmu-python-涨工资
- Windows下Tensorflow-silm库使用遇到ImportError: No module named 'nets'问题的解决方法
- CSS基础--absolute与overflow
- 计算机函数公式发生额总计,Excel使用SUMIF函数统计各部门的奖金总额
- oracle使用dmp文件恢复,dmp文件恢复oracle数据库
- Android 12 双击power键启动相机源码解析