【发布时间】:2017-05-28 16:31:49
【问题描述】:
我需要将文本添加到现有文件(如果用户在开始时选择文件 - PUSH READ BUTTON)
fileread = fileChooser.showOpenDialog(primaryStage);
或者如果文件不存在(用户不要从读取按钮开始选择文件),同样的保存按钮,打开一个
File filesave = fileChooser.showSaveDialog(primaryStage);
如果用户没有选择,则一如既往地保存文件。
我有方法 savefield - 从 HTMLEditor javaFX 保存文本
@FXML public void savefiled() throws FileNotFoundException, IOException {
Stage primaryStage = null;
String stringHtml = HTMLEditor_go.getHtmlText();
if(fileread.getPath().equals("")||fileread.getPath() == null){ //this line gives me a NULL
Files.createDirectories(Paths.get("./src/path/my_text/"));
FileChooser fileChooser = new FileChooser();
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("HTML files (*.html)", "*.html");
fileChooser.getExtensionFilters().add(extFilter);
File defaultDirectory = new File(System.getProperty("user.dir")+"/src/path/my_text/");
fileChooser.setInitialDirectory(defaultDirectory);
File filesave = fileChooser.showSaveDialog(primaryStage);
filesave.createNewFile();
SaveFile(stringHtml, filesave);
}else{ File fileget = new File(fileread.getPath());
fileget.createNewFile();
SaveFile(stringHtml, fileget);} }
保存文件是
private void SaveFile(String content, File file){
try {Writer write = new BufferedWriter (new FileWriter(file));
write.write(content);
write.close();
} catch (IOException ex) { }}
【问题讨论】:
-
无需 if 语句即可正常工作。
-
如果用户一开始没有选择要打开的文件,你将
fileread初始化成什么?你能解释一下“这条线给了我一个NULL”是什么意思吗?你的意思是它会抛出一个NullPointerException? -
怎么办?他可以选择文件,也可以不选择。如果 File fileread == "" || null 然后创建新文件,其中包含他在 HTMLEditor 中编写的文本。我只是在那个方向上想的,因为我是新手。
-
你能回答我之前评论中的问题吗?
-
是的,它给了我一个 NullPointerException,它应该是什么 - 那我为什么选择 if(){}
标签: java javafx html-editor