由于某些原因,Files.write不';t将文本从TextArea Javafx保存到文件

由于某些原因,Files.write不';t将文本从TextArea Javafx保存到文件,javafx,textarea,Javafx,Textarea,TextField和DatePicker值正确保存到文件中(这是一个HTML文件) 但是,由于某些原因,无法保存TextArea文本。它正确地获取原始文本,但未正确保存。为什么? 解决方案:替换函数不喜欢文本中的新行。要么从文本中删除换行符,要么在读取文件时使用正则表达式删除行。那么您是否100%确定内容在写入文件之前的最后一行中确实有一个值?是的。它的内容具有整个HTML文档的价值,并通过replaceAll函数进行了修改,但由于某种原因,它不会替换TextArea文本。或者,您可能对给定的路

TextField和DatePicker值正确保存到文件中(这是一个HTML文件)

但是,由于某些原因,无法保存TextArea文本。它正确地获取原始文本,但未正确保存。为什么?


解决方案:替换函数不喜欢文本中的新行。要么从文本中删除换行符,要么在读取文件时使用正则表达式删除行。

那么您是否100%确定
内容
在写入文件之前的最后一行中确实有一个值?是的。它的内容具有整个HTML文档的价值,并通过replaceAll函数进行了修改,但由于某种原因,它不会替换TextArea文本。或者,您可能对给定的
路径有读访问权,但并没有写访问权?虽然我认为这会引发某种异常,但正如我所说,它成功地编辑了前两个html标记,其中包含实际文件中的内容。问题只在于TextArea,我完全不知道为什么。哦,好的。我的错误。我看错了。
Path path = Paths.get(access.getFilePath());
    Charset charset = StandardCharsets.UTF_8;

    String content = new String(Files.readAllBytes(path), charset);

    String originalText;

    File input = new File(access.getFilePath());
    Document doc = Jsoup.parse(input, "UTF-8");

    Element htmlElement = doc.select(htmlValue.get(punchLineTextField.getId())).first();
    originalText = htmlElement.toString();
    htmlElement.text(punchLineTextField.getText());

    content = content.replaceAll(originalText, htmlElement.toString());

    htmlElement = doc.select(htmlValue.get(newsDatePicker.getId())).first();
    originalText = htmlElement.toString();
    htmlElement.text(newsDatePicker.getValue().toString());

    content = content.replaceAll(originalText, htmlElement.toString());

    htmlElement = doc.select(htmlValue.get(welcomeMessageTextArea.getId())).first();
    originalText = htmlElement.toString();
    htmlElement.text(welcomeMessageTextArea.getText());

    content = content.replaceAll(originalText, htmlElement.toString());

    Files.write(path, content.getBytes(charset));