使用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(....))