Leitura / gravação em arquivos de propriedades dentro do arquivo jar
Então, eu estou voltando a escrever Java depois de 4 anos. Por favor, perdoe qualquer erro "novato".
Eu preciso ter um arquivo de propriedades onde eu possa armazenar alguns dados simples para o meu aplicativo. Os dados do aplicativo em si não residem aqui, mas armazenarei informações como o caminho do arquivo até o último armazenamento de dados usado, outras configurações etc.
Eu consegui me conectar ao arquivo de propriedades que existe dentro do mesmo pacote que o arquivo de classe que está tentando se conectar a ele e posso ler o arquivo, mas estou tendo problemas para escrever novamente no arquivo. Tenho certeza de que meu código funciona (pelo menos não está gerando erros), mas a alteração não é refletida no próprio arquivo após o aplicativo ser executado no Netbeans.
Na imagem acima, você pode ver o arquivo mainProperties.properties em questão e a classe tentando chamá-lo (prefManagement.java). Então, com isso em mente, aqui está o meu código para carregar o arquivo:
Properties mainFile = new Properties();
try {
mainFile.load(prefManagement.class.getClass().getResourceAsStream("/numberAdditionUI/mainProperties.properties"));
} catch (IOException a) {
System.out.println("Couldn't find/load file!");
}
Isso funciona e eu posso verificar e confirmar a chave existente (defaultXMLPath).
Meu código para adicionar a este arquivo é:
String confirmKey = "defaultXMLPath2";
String propKey = mainFile.getProperty(confirmKey);
if (propKey == null) {
// Key is not present so enter the key into the properties file
mainFile.setProperty(confirmKey, "testtest");
try{
FileOutputStream fos = new FileOutputStream("mainProperties.properties");
mainFile.store(fos, "testtest3");
fos.flush();
}catch(FileNotFoundException e ){
System.out.println("Couldn't find/load file3!");
}catch(IOException b){
System.out.println("Couldn't find/load file4!");
}
} else {
// Throw error saying key already exists
System.out.println("Key " + confirmKey + " already exists.");
}
Como mencionei acima, tudo funciona sem erros e posso brincar tentando adicionar a chave existente e lança o erro esperado. Mas, ao tentar adicionar um novo par de chave / valor, ele não aparece no pós-arquivo de propriedades. Por quê?