台灣最大程式設計社群網站
線上人數
1558
 
會員總數:243325
討論主題:188102
歡迎您免費加入會員
討論區列表 >> Java >> 即時監控文件問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
即時監控文件問題
價值 : 30 QP  點閱數:130 回應數:2

樓主

sweet11
門外漢
0 1
10 2
發送站內信


我的需求是監控csv檔案,當檔案有修改後立即印出修改的時間以及行數,

目前碰到的問題是
1.更新檔案後印出的結果顯示兩次,只有呼叫一次
2.row行數不對,以及顯示第二次的時間才對,第一次的時間有誤




try{
String fileName = "D:/ReadTest.csv";
File file = new File(fileName);
int rowSize;
int rowSizenew;

ArrayList<String []> csvList = new ArrayList<String []>();
CsvReader reader = new CsvReader(fileName,',',Charset.forName("Big5"));

while(reader.readRecord()){
csvList.add(reader.getValues());
}
reader.close();

rowSize = csvList.size();//取得row行數

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); //設定日期格式
String fileDate = "", newFileDate = "";
fileDate = formatter.format(new Date(file.lastModified()));

System.out.println("row size......." + rowSize);
System.out.println("檔案日期為......" + fileDate);

while(true){
newFileDate = formatter.format(new Date(file.lastModified()));
if(!fileDate.equals(newFileDate))
{
rowSizenew = csvList.size();
for(int row=rowSize;row<csvList.size();row++){//印出內容
System.out.println(" ");
for(int cell=0;cell<csvList.get(row).length;cell++)
{
System.out.print(csvList.get(row)[cell]+" \t ");
}
}
fileDate = newFileDate;
System.out.println("\nNew row size......" + rowSizenew);
System.out.println("檔案更新日期為.... " + newFileDate);
}
}
}
catch(Exception e){
e.printStackTrace();
}
}

感謝各位~

搜尋相關Tags的文章: [ java ] ,
本篇文章發表於2018-07-24 10:15
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

sweet11
檢舉此回應
目前時間顯示有誤以及重複印出已解決,

剩下更新csv檔新的row行數不對~
本篇文章回覆於2018-07-25 08:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

sweet11
檢舉此回應
已解決問題~
本篇文章回覆於2018-07-25 10:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.