Java监听文件传输完成,java – 如何使用FileChannels transferFrom()方法监视进度(JProgressBar)?...

我需要一些帮助JProgressBar组件.我的程序使用

java.nio FileChannels将文件从一个地方复制到另一个地方.实际的复制方法是transferFrom().

我现在有两个问题

>如何监视FileChannels的传输进度?我发现的所有教程使用传统的java.io InputStreams,并在循环输入流时增加进度int.

>我的复制方法(FileChannel方法)封装在一个单独的方法中,该方法由通过源文件夹和目标文件夹进行迭代的其他方法调用,然后为每个文件调用FileChannel方法.

如何为完整的复制机制实现ProgressBar?

那么我应该早点阅读常见问题,所以我想我必须编辑我的初始帖子,而不是评论答案,对吧?

好的,这是我到目前为止所做的.

正如jambjo建议的(感谢方式),transferFrom()方法现在循环.

BTW:有没有一个优选的块大小,还是取决于我的进度条的粒度,就像EJP所说的那样?

这是我的代码片段:

while (position < size) {

position += destination.transferFrom(source, position, chunkSize);

current = (position/size)*100;

System.out.println(current);

}

不幸的是,“当前”值在循环中保持为0,我不知道为什么.

我错过了什么吗?

再次感谢jambjo!我非常感谢您的投入!

现在,单个文件的进度监视工作,让我们解决我的第二个问题.

我想,不,我不得不监视不仅一个文件的进度,而是一堆文件.

我的主要复制方法遍历各种目录,并通过调用实际的传输方法来复制适当的文件.

所以复制方法不会传输文件,他们只是选择实际传输方式的文件.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值