在单元测试中,我覆盖配置文件以测试处理不良属性值。 我使用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
文件的属性,而不是新复制的版本。
通过调试,我单步调查文件,我可以排除它是写入文件系统的时间问题。
复制步骤以某种方式保存文件句柄吗?如果是这样,我将如何再次释放它? 如果没有,是否有人知道为什么发生这种情况以及如何解决它?
谢谢。
复制方法适当关闭所有句柄;没有进一步的信息可能很难协助。你有一个可以重现错误的最小测试用例吗? –