[开发时随手笔记]关于 ProgressMonitorInputStream 不弹出进度条 的 注意事项

 

使用ProgressMonitorInputStream 不能弹出的有下原因:

1.BufferedInputStream的默认 缓存size太大(可以自行定义较小值 解决)

2.不要在EDT(事件分发线程)中使用,会造成SWING卡死, 在新线程中调用

3.如果InputStream 是阻塞流(in.available()返回0) 会响影 ProgressMonitorInputStream 的弹出,

 

 

以上,如果BufferedInputStream缓存太大,那么就不用每次被其包装的ProgressMonitorInputStream类.只读自己的缓存

不调用ProgressMonitorInputStream 的read就不调用read里面的monitor.setProgress 

比方说

下载的文件560字节  BufferedInputStream缓存1024字节 就是说,buffered.read一次就读完了整个文件. 如果想显示进度条,得把buffered size 设560字节以下 如128


或者

让ProgressMonitorInputStream包含BufferedInputStream

而不是 new BufferedInputStream(new ProgressMonitorInputStream(....))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值