首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用FileeChooser在javaFX中创建新文件并将数据保存在文件中?

如何使用FileeChooser在javaFX中创建新文件并将数据保存在文件中?
EN

Stack Overflow用户
提问于 2020-05-26 12:57:18
回答 3查看 2.5K关注 0票数 0

我需要通过对话框保存文件。对话框打开,但文件本身未保存,如何修复?代码:

代码语言:javascript
运行
复制
    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Save");
    fileChooser.setInitialFileName("save file");
    fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("All Files", "*.*"));
    //Adding action on the menu item
    save.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent event) {


            //Opening a dialog box
            fileChooser.getExtensionFilters()
                    .addAll(
                            new FileChooser.ExtensionFilter("TXT files (*.TXT)", "*.TXT"),
                            new FileChooser.ExtensionFilter("txt files (*.txt)", "*.txt")
                    );
            fileChooser.showSaveDialog(primaryStage);

        }
    });
EN

Stack Overflow用户

发布于 2020-05-26 16:35:57

FileChooser不会在存储设备上创建文件,如果文件存在,它也不会修改该文件。

这只是让用户通过保存对话框确定的File实例的一种方法。在用户选择文件之后,您需要自己保存数据:

代码语言:javascript
运行
复制
File selectedFile = fileChooser.showSaveDialog(primaryStage);
if (selectedFile != null) {
    // dialog closed by selecting a file to save the data to

    // write data here yourself, e.g.
    try (BufferedReader br = Files.newBufferedReader(selectedFile.toPath(), StandardCharsets.UTF_8)) {
        br.write("Hello World!\n");
    }
}

如果写入文件可能需要很长时间,则应该将写入逻辑移动到后台线程,以避免冻结GUI。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62022692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档