hey leute hab ein kleines problem und zwar:
ich möchte in meinem code ein objekt aus einer datei auslesen und falls dies zu einem fehler führt (weil die datei beschädigt oder extern verändert wurde) dann soll diese gelöscht werden, ich weiß nur nicht wie
im moment sieht das ganze ca so aus
[JAVA=42]
File DATEI = new File(...);
FileInputStream Speicher_dat;
ObjectInputStream Speicher_in;
try{
if(DATEI.exists() && DATEI.isFile()){
Speicher_dat = new FileInputStream(DATEI);
Speicher_in = new ObjectInputStream(Speicher_dat);
Speicher_in.close();
Speicher_dat.close();
}
}
catch(Exception e){
if(umfragen_dat.exists()){
boolean gelöscht=umfragen_dat.delete();
}
else{
System.exit(0);
}
}
[/code]
das problem hier ist, dass die datei nie gelöscht wird, also "gelöscht" ergibt immer "false".
ich denke mal das liegt daran, dass die streams noch offen sind oder?
will ich diese im catch block schließen kommt immer der fehler, dass die streams evtl nicht initialisiert sind. hat von euch jemand eine elegante problemlösung??
gruß
ich möchte in meinem code ein objekt aus einer datei auslesen und falls dies zu einem fehler führt (weil die datei beschädigt oder extern verändert wurde) dann soll diese gelöscht werden, ich weiß nur nicht wie
im moment sieht das ganze ca so aus
[JAVA=42]
File DATEI = new File(...);
FileInputStream Speicher_dat;
ObjectInputStream Speicher_in;
try{
if(DATEI.exists() && DATEI.isFile()){
Speicher_dat = new FileInputStream(DATEI);
Speicher_in = new ObjectInputStream(Speicher_dat);
Speicher_in.close();
Speicher_dat.close();
}
}
catch(Exception e){
if(umfragen_dat.exists()){
boolean gelöscht=umfragen_dat.delete();
}
else{
System.exit(0);
}
}
[/code]
das problem hier ist, dass die datei nie gelöscht wird, also "gelöscht" ergibt immer "false".
ich denke mal das liegt daran, dass die streams noch offen sind oder?
will ich diese im catch block schließen kommt immer der fehler, dass die streams evtl nicht initialisiert sind. hat von euch jemand eine elegante problemlösung??
gruß