Erstaunlicher Bug

.maik.

Bekanntes Mitglied
Abend.
Ich bin dabei ein phone Book zu schreiben und möchte nun einen Button haben, der eine event auslöst, das alle einträge löscht. ich arbeite auch mit resistenter speicherung. komisch an der sache ist, dass das löschen nur dann klappt, wenn bei diesem thread noch nichts hinzugeügt wurde. schließe und öffne ich das pone book aber wieder, klappts einmal , und dann wieder nicht. Hier ist der Code für den Button :
Java:
class DeleteAllListener implements ActionListener
{
  File fileData;

  public DeleteAllListener()
  {
    fileData = new File("saves/data.ser");
  }

  public void actionPerformed(ActionEvent e)
  {
      boolean check = fileData.delete();
      System.out.println(check);
      if(check)
      {
        try{check = fileData.createNewFile();}catch(IOException k){System.out.println(k);}
      }
      System.out.println(check);
  }
}
auch komisch ist, wenn ich nur die datei lösche , erscheint immer true.
Danke ^^
lg
 
G

Gast2

Gast
Wahrscheinlich kannst du die Datei nicht löschen solange du sie noch im Zugriff hast. Also schön nach jedem Schreib/Lese Vorgang den Stream schließen. Dann sollte auch das löschen jederzeit gehen. Ob es wirklich sinnvoll ist die Datei zu löschen und neu anzulegen um alle Einträge zu löschen ist eine andere Frage.
 

.maik.

Bekanntes Mitglied
mh. das löschen klappt ja. wenn ich dann noch eine neue datei erstellen moechte, klappt auf einmal beides nicht mehr, außer nach dem neustart.
 
Zuletzt bearbeitet:
G

Gastredner

Gast
ich arbeite auch mit resistenter speicherung.
Resistente Speicherung? Speichert die nix?:D
Du meintest wohl eher persistent.
Wenn dein Problem nicht das Löschen, sondern das Anlegen der Datei ist, dann verzichte einfach darauf. Sobald du einen schreibenden Stream auf eine nicht-existente Datei öffnest bzw. in ihn hineinschreibst wird die Datei automatisch angelegt.
 

Neue Themen


Oben