4

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

我注意到这试图在解组异常之后立即删除或重命名文件。如果没有发生异常,则可以毫无问题地使用这些文件,因为它应该。

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

提前致谢,

丹妮

4

2 回答 2

3

您可以从您的文件创建一个FileInputStream然后解组它。然后,您可以更好地控制发生错误时发生的情况。

FileInputStream inputStram = new FileInputStream(file);
Foo foo = (Foo) Unmarshaller unmarshal(inputStream);
于 2012-09-12T20:52:20.050 回答
1

我错过了 finally 块中的资源释放(关闭流等)。多年前的菜鸟错误!谢谢!

于 2018-05-22T18:53:36.080 回答