【发布时间】:2014-04-15 12:30:24
【问题描述】:
我有大小为 2GB 到 4GB 的大型 XML 文件,我是通过第三方供应商获得的。现在我需要做两种类型的操作 针对不同的用例:-
用例 1:-
验证 XML 中的一些值。
用例 2:-
将 XML 编组为 java 对象以进行一些处理。
现在我的问题是最好的方法是什么。我可以在不解析用例 1 的情况下验证特定元素吗?
第二个问题是我怎样才能在不出现OutOfMemory 异常或在用例 2 中充分利用内存的情况下编组这么大的文件?
【问题讨论】:
-
如果是一次性活动,那么您可以通过增加堆内存使用 java 来做到这一点。
-
不是一次性活动
-
不要一次读取,使用 STaX API 读取文件(读取文件的一小部分)。例如,您可能还想看看 Spring Batch 以帮助您读取/处理该文件。
标签: java xml marshalling