定期使用PrintWriter向指定位置的xml文件寫入來自數據庫的數據。 我不想刪除現有的xml文件,直到xml的生成在當前運行中完全完成,因爲在生成xml的任何問題的情況下,我將留下沒有xml文件。 希望能夠處理這種情況的任何建議,其中當前文件的刪除將延遲到在當前運行中生成/寫入文件完全完成。刪除先前的XML文件,直到使用Java生成新文件
1
A
回答
2
您可以將新的XML寫入臨時文件,然後移動/重命名舊文件,然後將臨時文件移動/重命名爲真實文件名,最後刪除舊文件。這樣,您始終擁有一個文件,並且在新文件到位之前不要刪除舊文件。
1
做這種事最常見的方法是用不同的文件名重命名原始的XML文件。
簡易版:
If 'file.xml' exists Then
If 'file.xml.bak' exists Then
remove 'file.xml.bak'
Fi
rename 'file.xml' as 'file.xml.bak'
Fi
generate XML to 'file.xml'
在這個版本中的缺陷是,如果應用程序(或系統)重命名後失敗,下一次運行該應用程序時可能會看到一個不完整或丟失'file.xml'
。您可以通過讓應用程序在檢測到任一情況時嘗試使用備份文件來解決此問題。
或者,您可以引入第三個文件;例如讓應用程序生成'file.xml.new'
並在寫入成功後進行重命名。在某些情況下,您仍然必須應對丟失的'file.xml'
:除非您有事務性文件系統,否則它是不可避免的。但是,失敗的窗口較小,您應該始終完成當前和備份文件的副本。
相關問題
- 1. 生成新的XML文件
- 2. 使用XSD文件生成XML文件
- 3. 使用刪除以前的數據寫入新文件Java
- 4. 使用java刪除文件
- 5. 使用java刪除文件
- 6. Jooq 3.9.3刪除自定義生成的Java文件生成
- 7. 用於刪除元素的Java程序的XML文件生成器
- 8. Xml文件生成
- 9. 生成XML文件
- 10. java中的xml文件生成器
- 11. Nodejs立即刪除生成的文件
- 12. 刪除CronJobs生成的文件
- 13. 刪除XML輸入文件Java
- 14. 如何通過Java生成xml文件?
- 15. 從XML文件生成Java類
- 16. 插入刪除更新xml文件
- 17. 使用XSD從CSV生成XML文件
- 18. 如何使用libxml2生成XML文件?
- 19. 使用C#生成以下XML文件
- 20. 使用XML配置生成HTML文件
- 21. 使用PHP生成一個XML文件
- 22. 如何使用php生成xml文件
- 23. 生成XML文件的java文件,而無需任何API
- 24. 用Java刪除文件
- 25. Android:找不到生成的XML文件
- 26. 如何刪除在生成文件
- 27. 從git中刪除生成文件夾
- 28. 用java生成AutoCAD文件?
- 29. 如何從使用java的XML文件中刪除&?
- 30. 從xml文件生成html文件
如何在當前運行中以不同名稱生成文件,然後生成當前運行中的文件..刪除以前的文件並重命名當前文件。 – 2011-05-07 00:42:18
@John C - 是的...儘管您假定重命名不會以刪除正嘗試重命名的文件的方式失敗。 (在大多數情況下,這是一個公平的假設。) – 2011-05-07 00:47:32
+1。除非先前文件的刪除成功,否則我不會嘗試重命名。 – 2011-05-07 00:47:45