Save Singleton class in file

0

I am trying to save the entire class that installs it in Singleton , not to save each array that we have independently but to save the entire class with the contents of its arrays but it explodes me and I do not know why. Can someone shed some light? I leave you code of how I have it

When executing it gives me the following errors: This comes out in a loop:

No se ha podido cargar el fichero de los Contratos Generando un
Registro Alternativo... Iniciando el Programa....
Exception in thread "main" java.lang.StackOverflowError
    at java.base/java.lang.StringBuilder.<init>(StringBuilder.java:91)
    at java.base/java.io.FileNotFoundException.<init>(FileNotFoundException.java:77)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:220)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:158)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:113)
    at Herramientas.Ficheros.cargarPizzeria(Ficheros.java:37)
    at Modelo.Pizzeria.<init>(Pizzeria.java:24)
    at Modelo.Pizzeria.<init>(Pizzeria.java:29)

Singleton class:

Singleton:

public class Pizzeria implements Serializable {
 private static Pizzeria instance;
 private ArrayList < Pedidos > pedidos = new ArrayList < > ();
 private ArrayList < Pizza > carta = new ArrayList < > ();
 private ArrayList < String > ingredientesDisponibles = new ArrayList < > ();
 private ArrayList < Cliente > clientes = new ArrayList < > ();

 //Constructor Privado (Clase Singleton)

 private Pizzeria() throws IOException {
  try {
   this.instance = Ficheros.cargarPizzeria();
  } catch (ClassNotFoundException | FileNotFoundException | EOFException ex1) {
   System.out.println("No se ha podido cargar el fichero de Pizzeria");
   System.out.println("Generando un Registro Alternativo...");
   System.out.println("Iniciando el Programa....");
   this.instance = new Pizzeria();
  }
 }

 //Metodo singleton
 public static Pizzeria getInstance() throws IOException {
  if (instance == null) {
   instance = new Pizzeria();
  }

  return instance;
 }

Class files:

//Metodo para leer los Ficheros
public static Pizzeria cargarPizzeria() throws FileNotFoundException, IOException, ClassNotFoundException {
 FileInputStream FicheroTextoCliente;
 ObjectInputStream FicheroBinarioPizzeria;
 FicheroTextoCliente = new FileInputStream("Pizzeria.DAT");
 FicheroBinarioPizzeria = new ObjectInputStream(FicheroTextoCliente);
 Pizzeria pizzeria;
 pizzeria = (Pizzeria) FicheroBinarioPizzeria.readObject();
 return pizzeria;
}

//Método para Guardar los datos en los ficheros
public static void guardarPizzzeria(Pizzeria pizzeria) throws FileNotFoundException, IOException {

 ObjectOutputStream ficheroBinarioSalida;
 try (FileOutputStream ficheroTextoSalida = new FileOutputStream("Pizzeria.DAT")) {
  ficheroBinarioSalida = new ObjectOutputStream(ficheroTextoSalida);
  ficheroBinarioSalida.writeObject(pizzeria);
 }
 ficheroBinarioSalida.close();
}
    
asked by Peter 18.05.2018 в 12:49
source

1 answer

1

I have chosen to save the arraylist individually and it has worked in this way in case anyone else has the doubt.

    
answered by 18.05.2018 / 14:03
source