[JAVA] Problema sui file

di il
2 risposte

[JAVA] Problema sui file

Salve a tutti, sono nuovo di questo forum quindi scusate per eventuali errori.
Ho un problema con una classe java, in pratica nella classe ho implementato due metodi carica e salva per due oggetti diversi, nel costruttore della classe in questione chiamo i metodi carica dei due oggetti, il problema è che il secondo metodo che chiamo mi crea un oggetto null e questo accade anche al primo se inverto l'ordine di chiamata, quindi il primo oggetto viene scritto correttamente sul file mentre il secondo rimane null.
Ecco il codice e grazie in anticipo.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;


public class Prova{

	public Prova(String path){
		pathProdotti = path+"prodotti.dat";
		pathSconti = path+"politicheSconti.dat";
		caricaSconti();
		caricaProdotti();
	}
	
	public void salvaProdotti(){
		try {
			ObjectOutputStream out;
			out = new ObjectOutputStream(new FileOutputStream(pathProdotti));
			out.writeObject(prodotti);
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void caricaProdotti(){
		try {
			ObjectInputStream in;
			in= new ObjectInputStream(new FileInputStream(pathProdotti));
			prodotti=(ArrayList<String>)in.readObject();
			in.close();
		} catch (ClassNotFoundException | IOException e) {
			prodotti= new ArrayList<String>();
			salvaProdotti();
		}
	
	}

	public void salvaSconti(){
		try {
			ObjectOutputStream out;
			out = new ObjectOutputStream(new FileOutputStream(pathSconti));
			out.writeObject(sconti);
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void caricaSconti(){
		try {
			ObjectInputStream in;
			in= new ObjectInputStream(new FileInputStream(pathSconti));
			sconti=(boolean[])in.readObject();
			in.close();
		} catch (ClassNotFoundException | IOException e ) {
			sconti = new boolean[3];
			sconti[0]=false;
			sconti[1]=false;
			sconti[2]=false;
			salvaSconti();
		}
	}

	
	private ArrayList<String> prodotti;	
	private String pathProdotti;
	private String pathSconti;
	private boolean[] sconti;
	
}

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte