/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package mvcgrafik.model; import java.awt.Point; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; 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.util.ArrayList; import java.util.Collections; import java.util.List; /** * * @author le */ public class GrafikModel { private ArrayList punkte; private ArrayList figuren; public GrafikModel() { punkte = new ArrayList<>(); figuren = new ArrayList<>(); } public void addPoint(Point p) { punkte.add(p); } public List getPunkte() { return Collections.unmodifiableList(punkte); } public List getFiguren(){ return Collections.unmodifiableList(figuren); } /** * Persistenz via Serialisierung * @param dateiname * @throws FileNotFoundException * @throws IOException */ public void speicherePunkte(String dateiname) throws FileNotFoundException, IOException { // an Preferences denken!! FileOutputStream fos = new FileOutputStream(dateiname); //wichtig Puffer -> Performance BufferedOutputStream bos = new BufferedOutputStream(fos); //Serialisierung ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(punkte); oos.flush(); // Puffer oos.close(); } public void lesePunkte(String dateiname) throws FileNotFoundException, IOException, ClassNotFoundException { // an Preferences denken!! FileInputStream fis = new FileInputStream(dateiname); //wichtig Puffer -> Performance BufferedInputStream bis = new BufferedInputStream(fis); //Serialisierung ObjectInputStream ois = new ObjectInputStream(bis); Object daten = ois.readObject(); // Achtung // if (daten instanceof ArrayList) // { // punkte = (ArrayList)daten; // } //eleganter if (daten instanceof ArrayList liste) { punkte = liste; } } public void endShape() { figuren.add(new ArrayList(punkte)); punkte.clear(); } }