我正在使用javax.xml.transform包来转换巨大的XML文件......这个过程需要很多时间......最终用户将无法看到进度。有没有办法将进度条与转换过程相结合。
答案 0 :(得分:0)
我已经通过报告目前已读取了多少输入文件来完成此类操作。例如,将您正在阅读输入XML文件的InputStream
打包在javax.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'
这与报告转换进度不同,但只要转换不等到它在生成输出之前读取整个文件,它就应该关闭。