2 votes

Ecrire dans un fichier qui existe déjà - mais j'ai un problème

J'ai un code qui devrait écrire des lignes dans un fichier... - Si le fichier n'existe pas, il devrait créer un nouveau fichier avec ce nom. - Si le fichier existe, il devrait simplement écrire une nouvelle ligne...

Il semble qu'il crée toujours un nouveau fichier et je n'arrive pas à comprendre comment l'éviter... Voici mon code...

Comment faire en sorte qu'il écrive simplement une nouvelle ligne si le fichier existe déjà?

Merci pour votre temps...

if (isANumber(value) == true) {
    String valResult = "validation_result=VALID";
    BufferedWriter writer = null;
    writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("ValidationResults.txt")));
    System.out.println("Écriture dans le fichier TEXTE : " + "type=" + key + ";value=" +  value + ";" + valResult);
    writer.newLine();
    writer.write("\ntype=" + key + ";value=" +  value +  valResult + "\n");
    writer.flush();
    writer.close();
} else {
    valResult = "validation_result=INVALID";
    BufferedWriter writer =  new BufferedWriter(new OutputStreamWriter(new FileOutputStream("ValidationResults.txt")));
    System.out.println("Écriture dans le fichier TEXTE : " + "type=" + key + ";value=" +  value + ";" +  valResult);
    writer.newLine();
    writer.write("\ntype=" + key + ";value=" +  value + ";" + valResult + "\n");
    writer.flush();
    writer.close();
}

2voto

Dennis Kriechel Points 3330

Utilisez un FileWriter. Cela devrait résoudre votre problème. Le paramètre True indique que la ligne suivante sera ajoutée au fichier existant. Si vous utilisez false à la place, le fichier sera écrasé.

new BufferedWriter(new FileWriter("file.txt", true));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X