From 7cbde2fc9d5cd8a6aff349410d76470c5d24bff2 Mon Sep 17 00:00:00 2001 From: Jesus Date: Mon, 17 Oct 2022 20:59:23 +0200 Subject: [PATCH] Implementing serializable to a list of person --- .../miobjeto/serializable/Main.java | 27 +++++++++-------- .../serializable/controller/ObjWriter.java | 6 ++-- .../miobjeto/serializable/model/People.java | 30 +++++++++++++++++++ .../miobjeto/serializable/model/Person.java | 6 ++-- 4 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/jesuspinar/miobjeto/serializable/model/People.java diff --git a/src/main/java/com/jesuspinar/miobjeto/serializable/Main.java b/src/main/java/com/jesuspinar/miobjeto/serializable/Main.java index 0e791ce..c8ee55e 100644 --- a/src/main/java/com/jesuspinar/miobjeto/serializable/Main.java +++ b/src/main/java/com/jesuspinar/miobjeto/serializable/Main.java @@ -3,27 +3,30 @@ package com.jesuspinar.miobjeto.serializable; import com.jesuspinar.miobjeto.serializable.controller.ObjReader; import com.jesuspinar.miobjeto.serializable.controller.ObjWriter; import com.jesuspinar.miobjeto.serializable.model.Person; +import com.jesuspinar.miobjeto.serializable.model.People; import java.io.File; public class Main { public static void main(String[] args) { - Person person = new Person("Manolo", 32); - Person person1 = new Person("Javier", 23); - File file = new File("person.bin"); - ObjWriter.write(person,file); - ObjWriter.write(person1,file); + //Create list + People data = new People(); + //Init list + data.add(new Person("Manolo", 32)); + data.add(new Person("Jorge", 2)); + data.add(new Person("Pepe", 89)); - //machaca el ultimo que ha sido escrito con nueva entrada - //opt 1 : crear un array y serializarlo para despues leerlo - //opt 2 : crear tantos archivos como obj alla xd + boolean isWrited = ObjWriter.write(data,file); - Person p = (Person) ObjReader.read(file); - Person p2 = (Person) ObjReader.read(file); + People dat = null; + if (isWrited) { + dat = (People) ObjReader.read(file); + } + if (dat != null){ + System.out.println(dat.toString()); + } - System.out.println(p); - System.out.println(p2); } } diff --git a/src/main/java/com/jesuspinar/miobjeto/serializable/controller/ObjWriter.java b/src/main/java/com/jesuspinar/miobjeto/serializable/controller/ObjWriter.java index e760154..67f1b15 100644 --- a/src/main/java/com/jesuspinar/miobjeto/serializable/controller/ObjWriter.java +++ b/src/main/java/com/jesuspinar/miobjeto/serializable/controller/ObjWriter.java @@ -1,7 +1,5 @@ package com.jesuspinar.miobjeto.serializable.controller; -import com.jesuspinar.miobjeto.serializable.model.Person; - import java.io.*; public class ObjWriter { @@ -18,9 +16,9 @@ public class ObjWriter { } public static byte[] convertObjectToBytes(Object obj) { ByteArrayOutputStream boas = new ByteArrayOutputStream(); - try (ObjectOutputStream ois = new ObjectOutputStream(boas) + try (ObjectOutputStream objOutStream = new ObjectOutputStream(boas) ){ - ois.writeObject(obj); + objOutStream.writeObject(obj); return boas.toByteArray(); } catch (IOException ioe) { ioe.printStackTrace(); diff --git a/src/main/java/com/jesuspinar/miobjeto/serializable/model/People.java b/src/main/java/com/jesuspinar/miobjeto/serializable/model/People.java new file mode 100644 index 0000000..ae3f510 --- /dev/null +++ b/src/main/java/com/jesuspinar/miobjeto/serializable/model/People.java @@ -0,0 +1,30 @@ +package com.jesuspinar.miobjeto.serializable.model; + +import java.io.Serial; +import java.io.Serializable; +import java.util.ArrayList; + +public class People implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + private ArrayList data ; + + public People() { + data = new ArrayList<>(); + } + + public boolean add(Person p){ + data.add(p); + return true; + } + + public boolean remove(Person p){ + data.remove(p); + return true; + } + + @Override + public String toString() { + return data.toString(); + } +} diff --git a/src/main/java/com/jesuspinar/miobjeto/serializable/model/Person.java b/src/main/java/com/jesuspinar/miobjeto/serializable/model/Person.java index 86fc530..c4aceb1 100644 --- a/src/main/java/com/jesuspinar/miobjeto/serializable/model/Person.java +++ b/src/main/java/com/jesuspinar/miobjeto/serializable/model/Person.java @@ -3,11 +3,13 @@ package com.jesuspinar.miobjeto.serializable.model; import java.io.Serializable; public class Person implements Serializable { - private static final long serialID = 1L; + private static int CONT = 0; + private int id ; private String name; private int age; public Person(String name, int age) { + id = ++CONT; this.name = name; this.age = age; } @@ -30,6 +32,6 @@ public class Person implements Serializable { @Override public String toString() { - return "name = " + name + " age = " + age; + return "\nID = " + id + ", NAME = " + name + ", AGE = " + age; } }