在單元測試中,我覆蓋配置文件以測試處理不良屬性值。 我使用Apache的百科全書IO:Java複製覆蓋文件,讀取時獲取舊文件
org.apache.commons.io.FileUtils.copyFile(new File(configDir, "xyz.properties.badValue"), new File(configDir, "xyz.properties"), false)
在調查文件系統,我可以看到xyz.properties
其實覆蓋 - 尺寸被更新,內容是一樣的,即xyz.properties.badValue
。
當我完成通過代碼讀取文件到一個Properties對象(使用FileReader
對象)的測試用例時,我得到原始xyz.properties
文件的屬性,而不是新複製的版本。
通過調試,我單步調查文件,我可以排除它是寫入文件系統的時間問題。
複製步驟以某種方式保存文件句柄嗎?如果是這樣,我將如何再次釋放它? 如果沒有,是否有人知道爲什麼發生這種情況以及如何解決它?
謝謝。
複製方法適當關閉所有句柄;沒有進一步的信息可能很難協助。你有一個可以重現錯誤的最小測試用例嗎? –