我需要通过对话框保存文件。对话框打开,但文件本身未保存,如何修复?代码:
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);
}
});
发布于 2020-05-26 16:35:57
FileChooser
不会在存储设备上创建文件,如果文件存在,它也不会修改该文件。
这只是让用户通过保存对话框确定的File
实例的一种方法。在用户选择文件之后,您需要自己保存数据:
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。
https://stackoverflow.com/questions/62022692
复制相似问题