用于 FileInputStream 的 JavaFX 按钮?

JavaFX Button for FileInputStream?

 runEncrypt.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {

                File inputFile = new File("/Users/aktasberk/Desktop/hey");
                File encryptedFile = new File("/Users/aktasberk/Desktop/Encrypted_"+inputFile.getName());
                File decryptedFile = new File("/Users/aktasberk/Desktop/Decrypted_"+inputFile.getName());

                try {
                    String key = "16BitKeyIsHere16";
                CryptoUtils.encrypt(key, inputFile, encryptedFile);
                  CryptoUtils.decrypt(key, encryptedFile, decryptedFile);
                } catch (CryptoException ex) {
                  System.out.println(ex.getMessage());
                ex.printStackTrace();
                }
        }
    });

好的,我有一个加密和解密项目,加密和解密工作正常,但我在使用 FileInputStream 从目录中获取文件时遇到一些问题,我有一个浏览按钮可以执行此操作但无法使其工作,因此你可以在代码中看到我手动获取输入文件。

下面是我的浏览按钮,打开一个文件对话框让我选择一个文件。

browseEncrypt.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {


            File selectedFile = chooseEncrypt.showOpenDialog(primaryStage);
            if (selectedFile != null) {
                encryptPath.setText(selectedFile.getPath());
                primaryStage.show();
            }
        }
    });

我需要从浏览按钮获取文件而不是在代码中手动声明它,如果需要信息我可以更具体,谢谢。

删除本地:

File encryptedFile = new File("/Users/aktasberk/Desktop/Encrypted_"+inputFile.getName());

全球化

File encryptedFile;

然后:

browseEncrypt.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {


        File selectedFile = chooseEncrypt.showOpenDialog(primaryStage);
        if (selectedFile != null) {
            encryptPath.setText(selectedFile.getPath());
            encryptedFile = selectedFile;//Add This!
            primaryStage.show();//Not sure why this is here?
        }
    }
});