【发布时间】:2014-02-21 18:28:46
【问题描述】:
如果javax.xml.parsers.DocumentBuilder.parse(File) 的执行需要很长时间,我可以从某个地方以某种方式获取进度信息吗?可以添加一些钩子或进度侦听器吗?
【问题讨论】:
-
根据文档,答案是否定的。
-
您考虑过使用 SAX API 吗?它是基于事件的,您可以添加侦听器来更新进度。
如果javax.xml.parsers.DocumentBuilder.parse(File) 的执行需要很长时间,我可以从某个地方以某种方式获取进度信息吗?可以添加一些钩子或进度侦听器吗?
【问题讨论】:
我得到的最佳建议:DocumentBuilder.parse() 确实有可以从提供的流或阅读器中读取的变体。因此,编写一个检测版本的 FileInputStream/FileReader,报告它读取文件的距离(相对于文件的总长度),并将其传递给解析器。
【讨论】: