我正在循環中將文本附加到CSV文件。問題是,整個過程需要很長的時間+ - 1小時(因爲服務器請求,但沒關係)。我希望能夠在進程中途遇到程序故障時再次運行它時重寫文件。如何打開和關閉文件作家追加?
這意味着,通常我想追加到CSV,但如果它是第一個循環(添加頭的循環,也沒關係),我想關閉我的追加。
這裏是檢查它是否與報頭循環(最前面的一個)或其他代碼:
FileWriter writer;
try {
writer = new FileWriter(sFileName, true);
if (!headers.equals("")) {
// here is the point which will not happen twice, just if i re-run the program
writer.append(headers);
writer.append('\n');
writer.flush();
} else {
// write values to the file
writer.append(values.toString());
}
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我嘗試添加該writer = new FileWriter(sFileName, true);
到else
這個:writer = new FileWriter(sFileName);
到if
,沒有幫助。
如果看不清楚,請告訴我。
你爲什麼不檢查文件是否是創建作家之前存在?假設該文件僅在第一次創建時纔會創建它 – Maas 2014-08-28 07:35:35
您也可以在寫入方法開始時刪除該文件並重新創建該文件。 – brimborium 2014-08-28 07:37:21
我可能會使用它,但如何刪除該文件? – 2014-08-28 07:38:01