0

我正在使用 javax.xml.transform 包来转换巨大的 XML 文件......这个过程需要很多时间......最终用户将无法看到进度。有没有办法将进度条与转换过程相结合。

4

1 回答 1

0

我通过报告到目前为止已经读取了多少输入文件来完成这种事情。例如,将InputStream您正在从中读取输入 XML 文件的 包装在 ajavax.swing.ProgressMonitorInputStream中,然后从中javax.xml.transform读取。

当输入来自远程 URL 时,我的同事使用的模式是这样的:

URLConnection c = new URL(url).openConnection();
ProgressMonitorInputStream pm = new ProgressMonitorInputStream(parentComponent,
                "Transforming XML", c.getInputStream());
pm.getProgressMonitor().setMaximum(c.getContentLength());

// now read from 'pm'

这与报告您的转换进度不同,但只要转换不等到它在生成输出之前读取整个文件,它就应该关闭。

于 2012-11-12T01:08:11.103 回答