import java.util.Timer;

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了潮南免費建站歡迎大家使用!
import java.util.TimerTask;
public class Test extends TimerTask {
public static void main(String[] args) {
Timer timer = new Timer();
Test t=new Test();
//程序運行后立刻執(zhí)行任務(wù),每隔1000ms執(zhí)行一次
timer.schedule(t, 0, 1000);
}
@Override
public void run() {
System.out.println("在此處調(diào)用插入數(shù)據(jù)庫的方法");
}
}
導(dǎo)入文件若為二進制格式的csv或xls文件需要用jxl.jar包來解析,若文件為文本格式逗號分隔的csv文件則需要用opencsv.jar包來解析。下面為導(dǎo)入兩種格式文件的代碼示例:1. 導(dǎo)入文本格式逗號分隔的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為要導(dǎo)入的文本格式逗號分隔的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到數(shù)據(jù)庫 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為要導(dǎo)入的文本格式逗號分隔的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到數(shù)據(jù)庫 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為要導(dǎo)入的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到數(shù)據(jù)庫 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();
//設(shè)置時間為?xx-xx-xx?00:00:00
date.set(date.get(Calendar.YEAR),?date.get(Calendar.MONTH),?date.get(Calendar.DATE),?0,?0,?0);
//一天的毫秒數(shù)
long?daySpan?=?24?*?60?*?60?*?1000;
//得到定時器實例
Timer?t?=?new?Timer();
//使用匿名內(nèi)方式進行方法覆蓋
t.schedule(new?TimerTask()?{
public?void?run()?{
//run中填寫定時器主要執(zhí)行的代碼塊
System.out.println("定時器執(zhí)行..");
//算了,讀取文件我也加上吧
//你沒說是文本還是文件,我都用字節(jié)流了。
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是一天的毫秒數(shù),也是執(zhí)行間隔
};
}
//以上是每天00:00:00執(zhí)行
不是java定時讀取,而是系統(tǒng)調(diào)度
比如你寫了一個java程序,這個程序是讀取文件,寫到數(shù)據(jù)庫中。那么這個程序怎么才能定時啟動。是操作系統(tǒng)調(diào)度的問題了。不是java的問題。所以要用操作系統(tǒng)的調(diào)度。
如果在win服務(wù)器下,可以下一個cmd文件。文件中調(diào)用java程序,然后將cmd設(shè)置成每天幾點執(zhí)行
如果是linxu或者unix下,則使用crontab調(diào)度。
當(dāng)然,如果你非要用java程序來調(diào)度。那么這個程序肯定要常駐內(nèi)存,并且進行睡眠。這種方式?jīng)]有意義。
網(wǎng)站標(biāo)題:Java定時導(dǎo)入文件代碼 java定時導(dǎo)入文件代碼是什么
網(wǎng)站路徑:http://www.yijiale78.com/article32/hhiisc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、手機網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)