В модульном тесте я перезаписываю файл конфигурации, чтобы проверить обработку неверных значений свойств.
Я использую Apache Commons IO:
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
, а не вновь скопированной версии.
Посредством отладки, когда я делаю один шаг и изучаю файл, я могу исключить, что это проблема синхронизации записи в файловую систему.
Есть ли на шаге копирования дескриптор файла? Если так, то как бы я выпустил его снова?
Если нет, есть ли у кого-нибудь идеи, почему это происходит и как это решить?
Спасибо.