package bank; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList; public class Bank implements Serializable { private String name; private ArrayList kontenliste; public Bank(String name) { this.kontenliste = new ArrayList<>(); this.name = name; } public int kontoAnlegen(String inhaber) { Bankkonto bk = new Bankkonto(inhaber); kontenliste.add(bk); // Speichern Methode 2: geänderte Daten speichern saveBankData(); // bzw. der Einfachheit halber: alle Daten ;-) return bk.getKontonummer(); } public String getName() { return this.name; } public boolean geldEinzahlen(int kontonummer, double betrag) { Bankkonto bk = kontoFinden(kontonummer); if (bk != null) { bk.geldEinzahlen(betrag); return true; } return false; } private Bankkonto kontoFinden(int kontonummer) { for (Bankkonto bk : kontenliste) { if (bk.getKontonummer() == kontonummer) return bk; } return null; } // Die folgenden Persistenz-Methoden würde man in der Praxis in eine eigene // Klasse auslagern. private void saveBankData() { ObjectOutputStream oos; try { oos = new ObjectOutputStream(new FileOutputStream("BankData.ser")); oos.writeObject(this); oos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static Bank loadBankData() { try { ObjectInputStream ois = new ObjectInputStream(new FileInputStream("BankData.ser")); return (Bank) ois.readObject(); } catch (IOException | ClassNotFoundException e) { System.err.println("Keine Daten gespeichert, initialisiere alle Daten neu."); } return new Bank("Spaßkasse"); } }