class: center, middle, inverse # Guardar dades a fitxers ### Serializable .footnote[Joan Puigcerver Ibáñez] --- layout: true class: regular-slide .right[.logo[]] --- # Classes - Un programa organitza les dades en classes. - Volem poder guardar i llegir en un fitxer aquestes dades - Serialitzar - Procés de guardar un objecte a un medi d'emmagatzematge --- # Java Serializable - Permet transformar entre classes i format binari i enmatatzemar-les en un fitxer. - Format binari i no de text --- # Java Serializable - Les classes ha serialitzar han d'implementar Serializable ``` public class Book implements Serializable { //... } ``` --- # Java Serializable - relacions - També serialitzarà les relacions amb classes serialitzables ``` public class Bookstore implements Serializable { private ArrayList
bookList; //... } ``` ``` public class Book implements Serializable { //... } ``` --- # Classe -> fitxer ``` Rectangle rectangle = new Rectangle(45,45); Path path = Paths.get("./rectangledata.txt"); try (OutputStream outputStream = Files.newOutputStream(path)) { ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); objectOutputStream.writeObject(rectangle); objectOutputStream.flush(); } ``` --- # Fitxer -> classe ``` Path path = Paths.get("./rectangledata.txt"); try (InputStream fileInputStream = Files.newInputStream(path)) { ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); Rectangle rectangle = (Rectangle) objectInputStream.readObject(); return rectangle; } ```