Laden aus einer Datei

Hiho,

Ich hab in einem meiner Lernprogramme beim Laden des Programms diesen Code hier:

try
{
File datei = new File(„patho.xyz“);
FileInputStream fis = new FileInputStream(datei);
ObjectInputStream ois = new ObjectInputStream(fis);
ObjectDatabase o = (ObjectDatabase) ois.readObject();
ois.close();
fis.close();
if (o != null)
{
ObjectDatabase.lade(o);
}
}
catch (FileNotFoundException e)
{

e.printStackTrace();
System.err.println(e.getMessage());
}

D.h. ja, das wenn das File nicht gefunden wird, dass es nur eine Exception wirft und dann aufhört.

Ich hab leider kA von dem Laden und Speichern, was muss ich in das Catch schreiben, dass es wenn keine Datei existiert eine neue Anlegt und dann ein neues leeres Objekt läd?

MfG Purple :smile:

Hi

try
{
 File datei = new File("patho.xyz");

 if (!datei.exists()){
 if (!datei.createNewFile()) 
 System.out.println("Eine Datei gleichen Namens existiert bereits, anlegen nicht möglich.");

 FileInputStream fis = new FileInputStream(datei);
 ObjectInputStream ois = new ObjectInputStream(fis);
 ObjectDatabase o = (ObjectDatabase) ois.readObject();
 ois.close();
 fis.close();
 if (o != null)
 {
 ObjectDatabase.lade(o);
 }
}
catch (FileNotFoundException e) {
 e.printStackTrace();
}
catch (IOException e) {
 e.printStackTrace();
}

Alternatic könntest Du auch eine Exception werfen, wenn die Datei nicht vorhanden ist, das wäre dann sowas in der art:

 File datei = new File("patho.xyz");
 if (!datei.exists())
 try {
 throw new Exception("Datei nicht vorhanden");
 } catch (Exception e) { 
 e.printStackTrace();
 System.exit(0);
 }

find ich aber etwas merkwürdig die exception zu werfen und gleich wieder abzufangen, ich denke das macht nur sinn, wenn man für das ganze mehrere funktionen/klassen verwendet.

VG B.