Je suis en train de créer un carnet d’adresses et mon programme est censé enregistrer chaque élément d’une liste dans un fichier CSV. J’ai tout fait pour fonctionner, car il ne sauvegarde que 1 ligne dans le fichier.
public static void save(){
PrintWriter writer = null;
try {
writer = new PrintWriter("C:\Users\Remixt\workspace\2\AddressBook.csv", "utf-8");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
}
{
writer.println(AddressBook.get(getListSize()-1)+"n");
writer.close();//saves file
}
Edit: cela ne sauvegardera que le dernier élément du fichier. Il ne montre qu'une chose dans le fichier, peu importe le nombre de fois où j'ajoute quelque chose à la liste.
Réponses:
0 pour la réponse № 1le problème est ici
writer.println(AddressBook.get(getListSize()-1)+"n");
vous venez d'écrire le dernier élément de AddressBook
au csv
fichier, utilisation for loop
ce qui suit est un exemple
for (int i = 0; i < AddressBook.size(); i++) {
writer.println(AddressBook.get(i)+"n");
}
enfin, vous devriez écrire fichier par append mode
filename=new FileWriter("printWriter.txt",true);
writer=new java.io.PrintWriter(filename);