我有一个ICEfaces Web应用程序,需要执行文件复制操作并向用户显示进度条 .
目前,复制是通过调用'cpio'来完成的,该操作在操作完成之后才能使Java代码进展 . 虽然可以使用Java来监视写入的字节数与读取的字节数以估计复制进度,但我认为如果我用Java编写实际的复制操作,可能会有一个更简单的解决方案 . 我仍然会使用'cpio'进行存档,但实际的副本将由Java类执行 .
我在搜索中发现的大多数帮助都与progressMonitor有关,它包含一个swing组件,我不确定它能做我想做的事情 . 我只需要一个整数/两倍的进度,我可以将其作为100%的百分比提供给我的JSF进度条组件 .
2 回答
我不知道ICEFaces,但这里是如何在java中复制文件并监视命令行上的进度:
您必须以某种方式更新进度条而不是
System.out.println()
. 我希望这会有所帮助,但也许我不明白你的问题 .基本上,您应该使用侦听器模式 . 在这个例子中,lsitener有一个方法来接受刚刚写入的字节数 . 可以预先填充总文件大小来计算要在屏幕上显示的百分比 .