添加nio文件复制进度条

时间:2017-11-21 04:41:42

标签: java multithreading javafx progress-bar

我想知道是否有办法更新使用NIO库的Files.copy的进度条,它被用于在工作线程中下载文件。代码如下。

Task<Void> task = new Task<Void>() {
        @Override
        public Void call() {

            Platform.runLater(new Runnable() {
                @Override
                public void run() {
                    try (InputStream in = download.openStream()){
                        Files.copy(in, path, StandardCopyOption.REPLACE_EXISTING);
                    }catch(Exception e){
                        System.out.println("file download");
                    }
                }
            });

            Platform.runLater(
                    () -> view.enableButton()
            );
            return null;
        }
    };

我有一个尝试绑定到任务的进度条,但似乎所有这些都会导致错误并立即重新启用下载按钮。

1 个答案:

答案 0 :(得分:0)

Intent _intentOBJ= new Intent(Intent.ACTION_MAIN); _intentOBJ.addCategory(Intent.CATEGORY_HOME); _intentOBJ.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); _intentOBJ.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(_intentOBJ); 方法中使用updateProgress(current_progress, max);来更新进度

还要将call()正确绑定到进度条

Task