我已经使用Swing为GUI界面编写了代码,并使用Swingworker编写了使用Sync客户端处理下载的代码。
这是工作程序的doInBackground()方法应该执行的操作
1)确认带有要下载的当前文件的标签 2)下载该文件。
for (HashMap.Entry<String, Long> s: DCPFiles.entrySet()) {
jLabel5.setText("Download file " + Integer.toString(directory.listFiles().length + 1) + " di " + Integer.toString(nFilesDCP) + " del DCP "+ DCPname);
s3.getObject(GetObjectRequest.builder().bucket(bucketName)
.key(s.getKey()).build(),
ResponseTransformer.toFile(Paths.get(path.getPath()+ "\\" + s.getKey())));
}
在GUI界面中我还有一个进度栏,我会确认进度。由于aws-java-sdk-v2中尚无进度侦听器,因此我可以轮询部分下载的文件大小,然后除以预期大小,以更新进度栏。但是怎么做呢? s3.getObject上的While周期?在什么条件下?
预先感谢-