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

Michael

In my program I read a config file (.txt file) and show the content in a tableview. That works.

Tableview with data

The second column can be edited. This serves as a config file for the program. If I now save the data (File - Save) the config file is empty. I have no idea, why. Here is the code:

File - Save calls this:

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

and configData.saveData does this:

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

I get these messages:
File - Save clicked
File: C:\Users\Michael\AppData\Local\SCD\scdconfig.ini

These are expected and correct.

I do not get a message out of the for-loop. That lets me think there is no data. But why? I see the data.

I'm sure I'm just missing a little thing. Any help is appreciated.
The config file was 127 bytes when I read it and is now 0.

Thanks,

Michael

Michael

I figured it out. The problem was this line of code in the method saveConfig() of the controller

SCDConfigDataAccess configData = new SCDConfigDataAccess();

This creates a new instance and this does not have a connection to the data. Instead of doing this I use the instance defined in the controller class itself like so:

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

And this of course works.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive