JavaFX - 表格视图显示数据但保存到文件时,文件为空

JavaFX - tableview shows data but when saving to file, the file is empty

在我的程序中,我读取了一个配置文件(.txt 文件)并在表格视图中显示了内容。行得通。

Tableview with data

可以编辑第二列。这用作程序的配置文件。 如果我现在保存数据(文件 - 保存),则配置文件为空。我不知道为什么。这是代码:

文件 - 保存调用这个:

    @FXML
public void saveConfig() throws IOException {
    System.out.println("File - Save clicked");
    SCDConfigDataAccess configData = new SCDConfigDataAccess();
    configData.saveData(SCDController.configFile);
    closeConfig();
}//saveConfig

和configData.saveData这样做:

public class SCDConfigDataAccess {
private static ObservableList<SCDConfigData> scdConfig;

    public void saveData(File configFile) throws IOException {
      BufferedWriter bw = Files.newBufferedWriter(Paths.get(configFile.getPath()));
      String output = "";
      System.out.println("File: " + configFile.getPath());
      try { 
          for (SCDConfigData data : scdConfig) { 
              output = data.getsConfigType() + "=" + data.getsConfigValue() + "\n";
              System.out.println("Data: " + output);
              bw.write(output); } 
          bw.flush();
          bw.close();
      }catch(IOException e){ System.out.println("Error: " + e.getMessage()); }
} //saveData
}//class

我收到这些消息:
文件 - 单击保存
文件:C:\Users\Michael\AppData\Local\SCD\scdconfig.ini

这些是正确的。

我没有从 for 循环中得到消息。这让我认为没有数据。但为什么?我看到数据了。

我确定我只是漏掉了一点东西。感谢任何帮助。
配置文件我读的时候是127字节,现在是0.

谢谢,

迈克尔

我明白了。问题出在控制器的方法 saveConfig() 中的这行代码

SCDConfigDataAccess configData = new SCDConfigDataAccess();

这将创建一个新实例,并且与数据没有连接。我没有这样做,而是使用控制器 class 本身定义的实例,如下所示:

public class SCDConfigController {
private SCDConfigDataAccess configDataAccess;
    public void saveConfig() throws IOException {
    configDataAccess.saveData(SCDController.configFile);
    closeConfig();
}//saveConfig

这当然有效。