java – JAXB解组错误后文件被阻止的文件

我有一个JAXB marshall / unmarshall进程工作正常,除此之外:有时我必须解组的文件是空的或格式不正确,因此unmarshall抛出异常.这没关系,但是在这个异常之后,我的文件解组(源xml文件
java对象)被阻止了.我不能用它.

我注意到这个尝试在unmarshall异常后立即删除或重命名文件.如果没有异常发生,那么文件可以毫无问题地使用.

有没有办法“解锁”这些文件?我认为必须有任何方法来释放,关闭或释放已阻止我的文件的JAXB上下文或unmarshaller对象的资源.

提前致谢,

达尼

最佳答案 您可以从文件中创建FileInputStream,然后解组.然后,您可以更好地控制发生错误时发生的情况.

FileInputStream inputStram = new FileInputStream(file);
Foo foo = (Foo) Unmarshaller unmarshal(inputStream);
点赞