ti ringrazio adesso funziona il programmino di prova, però implementando la serializzazione in un programma più complesso questo non funziona...non trovo l'errore, vi posto l'oggetto e il codice che de/seriallizza
Oggetto
codice:
package eventapp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.util.ArrayList;
public class Evento implements Serializable{
private static final long serialVersionUID=1;
private String titolo;
private String logo;
private Sede sede;
private Programma programma;
private ArrayList<Organizzatore> organizzatori;
private Organizzatore myorganizzatore;
BufferedReader bufferRead;
private String scelta;
public Evento setEvento() throws IOException{
System.out.println("Inserire il titolo del nuovo Evento");
bufferRead = new BufferedReader(new InputStreamReader(System.in));
titolo = bufferRead.readLine();
System.out.println("Inserire il pathfile del logo del nuovo Evento");
bufferRead = new BufferedReader(new InputStreamReader(System.in));
logo = bufferRead.readLine();
return this;
};
public Evento() throws IOException{
setEvento();
sede=new Sede();
sede.setSede();
myorganizzatore=new Organizzatore();
programma=new Programma();
organizzatori=new ArrayList<Organizzatore>();
while(!"n".equals(scelta))
{
myorganizzatore.setOrganizzatore();
organizzatori.add(myorganizzatore);
System.out.println("Inserire un nuovo organizzatore?");
bufferRead = new BufferedReader(new InputStreamReader(System.in));
scelta = bufferRead.readLine();
}
programma.setProgramma();
}
}
codice che gestisce la serializzazione
codice:
package eventapp;
import java.io.*;
import java.util.ArrayList;
public class ListEventi implements Serializable{
private final static long serialVersionUID=1L;
private ObjectInputStream input;
private ObjectOutputStream output;
private ArrayList<Evento> ArrayEventi;
private Evento evento;
public ListEventi() throws IOException{
input=null;
output=null;
ArrayEventi=new ArrayList<Evento>();
}
public void readFileDat() throws IOException{
try{
input=new ObjectInputStream(new FileInputStream("dati.dat"));
}catch(FileNotFoundException e){
System.out.println("File dati.dat non trovato,Creazione");
ObjectOutputStream tempOutput=new ObjectOutputStream(new FileOutputStream("dati.dat"));
}catch(IOException ioe){
System.out.println("Errore di comunicazione 01");
}
try{
ArrayEventi=(ArrayList<Evento>)input.readObject();
}catch(IOException e1){
System.out.println("Errore comunicazione 02");
}catch(ClassNotFoundException e1){
System.out.println("Oggetto non trovato");
}
System.out.println("Lettura Eventi Completata,si controlli eventuali errori");
}
public void writeFileDat(){
try{
output=new ObjectOutputStream(new FileOutputStream("dati.dat"));
}catch(FileNotFoundException e){
System.out.println("File non trovato, o impossibile da scrivere");
}catch(IOException ioe){
System.out.println("Errore comunicazione 03");
}
try{
output.writeObject(ArrayEventi);
}catch(IOException e1){
System.out.println("Errore comunicazione 04");
}
try{
output.close();
}catch(IOException e2){
System.out.println("Errore comunicazione 05");
}
System.out.println("Salvataggio Completato");
}
public void addEvento(){
ArrayEventi.add(evento);
writeFileDat();
}
public void removeEvento(Evento arg){
int index=ArrayEventi.indexOf(arg);
ArrayEventi.remove(index);
writeFileDat();
}
}
nel Main:
codice:
public static void readDeseriezableObj() throws IOException{
ListEventi listEventi=new ListEventi();
listEventi.readFileDat();
}