十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import java.util.Timer;
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了潮南免费建站欢迎大家使用!
import java.util.TimerTask;
public class Test extends TimerTask {
public static void main(String[] args) {
Timer timer = new Timer();
Test t=new Test();
//程序运行后立刻执行任务,每隔1000ms执行一次
timer.schedule(t, 0, 1000);
}
@Override
public void run() {
System.out.println("在此处调用插入数据库的方法");
}
}
导入文件若为二进制格式的csv或xls文件需要用jxl.jar包来解析,若文件为文本格式逗号分隔的csv文件则需要用opencsv.jar包来解析。下面为导入两种格式文件的代码示例:1. 导入文本格式逗号分隔的csv文件Java代码 import au.com.bytecode.opencsv.CSVReader; import au.com.bytecode.opencsv.CSVReader; Java代码 public void importCsvFile() { CSVReader csvReader = null; try { csvReader = new CSVReader(new FileReader(importFile),',');//importFile为要导入的文本格式逗号分隔的csv文件,提供getXX/setXX方法 if(csvReader != null){ //first row is title, so past csvReader.readNext(); String[] csvRow = null;//row while ((csvRow = csvReader.readNext()) != null){ for (int i =0; icsvRow.length; i++){ String temp = csvRow[i]; switch (i) { case 0: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanName(temp); } break; case 1: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanEmail(temp); } break; default: break; } } //保存linkman到数据库 if(linkman.getLinkmanName() != null linkman.getLinkmanEmail() != null){ EmailLinkmanAPI.insertLinkman(linkman); } } } } catch (Exception e) { e.printStackTrace(); } } public void importCsvFile() { CSVReader csvReader = null; try { csvReader = new CSVReader(new FileReader(importFile),',');//importFile为要导入的文本格式逗号分隔的csv文件,提供getXX/setXX方法 if(csvReader != null){ //first row is title, so past csvReader.readNext(); String[] csvRow = null;//row while ((csvRow = csvReader.readNext()) != null){ for (int i =0; icsvRow.length; i++){ String temp = csvRow[i]; switch (i) { case 0: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanName(temp); } break; case 1: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanEmail(temp); } break; default: break; } } //保存linkman到数据库 if(linkman.getLinkmanName() != null linkman.getLinkmanEmail() != null){ EmailLinkmanAPI.insertLinkman(linkman); } } } } catch (Exception e) { e.printStackTrace(); } } 2. 二进制格式的csv或xls文件Java代码 import jxl.Sheet; import jxl.Workbook; import jxl.Sheet; import jxl.Workbook; Java代码 public void importXlsFile() { Workbook book = null; try { book = Workbook.getWorkbook(importFile);//importFile为要导入的xls文件,或二进制的csv文件,提供getXX/setXX方法 } catch (Exception e) { e.printStackTrace(); } if(book != null){ int sheetNo = book.getNumberOfSheets(); for(int i = 0; i sheetNo; i++){ Sheet sheet=book.getSheet(i); int rowNum = sheet.getRows(); int colNum = sheet.getColumns(); //first row is title, so past for(int r = 1; r rowNum; r++){//行 for(int c = 0; c colNum;c++){//列 String temp = sheet.getCell(c,r).getContents(); switch (c) { case 0: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanName(temp); } break; case 1: if(StringUtils.isNotEmpty(temp)){ linkman.setLinkmanEmail(temp); } break; default: break; } } //保存linkman到数据库 if(linkman.getLinkmanName() != null linkman.getLinkmanEmail() != null){ EmailLinkmanAPI.insertLinkman(linkman); } } } } }
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
public class TimerDemo {
public static void main(String[] args) throws Exception {
//得到时间类
Calendar date = Calendar.getInstance();
//设置时间为 xx-xx-xx 00:00:00
date.set(date.get(Calendar.YEAR), date.get(Calendar.MONTH), date.get(Calendar.DATE), 0, 0, 0);
//一天的毫秒数
long daySpan = 24 * 60 * 60 * 1000;
//得到定时器实例
Timer t = new Timer();
//使用匿名内方式进行方法覆盖
t.schedule(new TimerTask() {
public void run() {
//run中填写定时器主要执行的代码块
System.out.println("定时器执行..");
//算了,读取文件我也加上吧
//你没说是文本还是文件,我都用字节流了。
FileInputStream fis = new FileInputStream("D:\\a.txt");
byte[] b = new byte[1024];
int len = 0;
while((len=fis.read(b))!=-1){
//读取输出呀呀呀呀......
System.out.println(new String(b,0,len));
}
}
}, date.getTime(), daySpan); //daySpan是一天的毫秒数,也是执行间隔
};
}
//以上是每天00:00:00执行
不是java定时读取,而是系统调度
比如你写了一个java程序,这个程序是读取文件,写到数据库中。那么这个程序怎么才能定时启动。是操作系统调度的问题了。不是java的问题。所以要用操作系统的调度。
如果在win服务器下,可以下一个cmd文件。文件中调用java程序,然后将cmd设置成每天几点执行
如果是linxu或者unix下,则使用crontab调度。
当然,如果你非要用java程序来调度。那么这个程序肯定要常驻内存,并且进行睡眠。这种方式没有意义。