【发布时间】:2011-08-18 09:38:02
【问题描述】:
我的 XML 文件(以 UTF-8 编码)有两个问题:
其中一些(不是全部)包含Byte order mark EF BB BF
其中一些(不是全部)包含 Null 字符 00,分布在整个文件中。
这两个问题都阻止我使用 SAX 解析器解析 XML。我目前的方法是将文件读入字符串并使用正则表达式来提取这些字符并将字符串写回文件,这很好。 但是,我的文件非常大(数百兆字节),并且每次调用 replaceAll() 时将文件读入字符串并创建相同大小的结果字符串,很快就会导致 java 堆空间错误。
增加堆大小绝对不是一个长期的解决方案。我需要流式传输文件并即时提取所有这些字符。
对高效解决方案的外观有何建议?
【问题讨论】: