java如何在javaFX中使用FileeChooser创建新文件并将数据保存在文件中?
我需要通过对话框保存文件。对话框打开但文件本身未保存,如何修复? 代码:
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);
}
});
# 1 楼答案
下面是一个小例子,如果您想创建一个具有特定文件名(
TextField
)、文件扩展名(ComboBox
)和目标目录(DirectoryChooser
)的新文件:控制器类:
FXML文件:
预览:
# 2 楼答案
文件选择器中的过滤器仅用于显示现有文件。如果您想用某个扩展名保存文件,则需要以下内容:
# 3 楼答案
FileChooser
不会在存储设备上创建文件,也不会修改文件(如果存在)这只是一种让用户通过保存对话框确定的
File
实例的方法。用户选择文件后,您需要自己保存数据:如果写入文件可能需要很长时间,则应将写入逻辑移动到后台线程,以避免冻结GUI