commit b5e5b6dab182d0da17a038e9219b000585180ede Author: Jesus Date: Sat Oct 22 20:00:54 2022 +0200 Project setup diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..3d3ab27 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..4f224e5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/com.createXml.iml b/com.createXml.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/com.createXml.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/person.bin b/person.bin new file mode 100644 index 0000000..bc6467e Binary files /dev/null and b/person.bin differ diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..dd371a2 --- /dev/null +++ b/src/Main.java @@ -0,0 +1,32 @@ + +import controller.ObjReader; +import controller.ObjWriter; +import model.People; +import model.Person; + +import java.io.File; + +public class Main { + public static void main(String[] args) { + File file = new File("person.bin"); + + //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)); + + //Check writing + boolean isWritten = ObjWriter.write(data,file); + + //Test serialization + People p; + if (isWritten) { + p = (People) ObjReader.read(file); + System.out.println(p.toString()); + } + + + } +} diff --git a/src/controller/ObjReader.java b/src/controller/ObjReader.java new file mode 100644 index 0000000..8e7be8c --- /dev/null +++ b/src/controller/ObjReader.java @@ -0,0 +1,20 @@ +package controller; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.ObjectInputStream; + +public class ObjReader { + public static Object read(File file) { + Object result = null; + try (FileInputStream fis = new FileInputStream(file); + ObjectInputStream ois = new ObjectInputStream(fis) + ){ + result = ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + return result; + } +} diff --git a/src/controller/ObjWriter.java b/src/controller/ObjWriter.java new file mode 100644 index 0000000..85c7aef --- /dev/null +++ b/src/controller/ObjWriter.java @@ -0,0 +1,20 @@ +package controller; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectOutputStream; + +public class ObjWriter { + public static boolean write(Object obj, File out) { + try (FileOutputStream fos = new FileOutputStream(out); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ){ + oos.writeObject(obj); + oos.flush(); + return true; + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/model/People.java b/src/model/People.java new file mode 100644 index 0000000..327feb1 --- /dev/null +++ b/src/model/People.java @@ -0,0 +1,34 @@ +package 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; + } + + public ArrayList getData() { + return data; + } + + @Override + public String toString() { + return data.toString(); + } +} diff --git a/src/model/Person.java b/src/model/Person.java new file mode 100644 index 0000000..0829ae4 --- /dev/null +++ b/src/model/Person.java @@ -0,0 +1,37 @@ +package model; + +import java.io.Serializable; + +public class Person implements Serializable { + 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; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "\nID = " + id + ", NAME = " + name + ", AGE = " + age; + } +}