Ciao a tutti,
sono nuova del sito e sono anche una principiante di java :P! Volevo chiedere aiuto perchè non riesco a capire come fare a salvare e leggere oggetti da file...cioè i comandi so quali sono ma ho provato ad usarli e puntualmente il programma crasha con eccezioni di vario tipo :P
Inserisco il codice che ho provato,se qualcuno può dirmi dove sbaglio ne sarei contentissima!
Grazie in anticipo :P
Questa è la funzione per scrivere,sia fos che out sono dichiarate all'inizio della classe, Prodotto è un'altra classe nel pacchetto,e implementa serializable
codice:
public void Scrivi(Prodotto[] nuovo) throws IOException
{
Prodotto[] temp= new Prodotto[2];
temp=nuovo;
try{
fos=new FileOutputStream("C:/Users/laura/magazzino1.bin",true);
out = new ObjectOutputStream(fos);
out.writeObject(temp);
out.flush();
out.close();
}
catch(IOException e)
{
System.out.println(" "+e);
}
System.out.println("ho scritto");
}
Fino a qui penso che funzioni,mi visualizza "ho scritto" senza eccezioni: il problema nasce se ora provo a leggere(anche fin e ois li ho dichiarati all'inizio della classe):
codice:
public void Leggi()
{
try{
fin= new FileInputStream("C:/Users/laura/magazzino1.bin");
ois=new ObjectInputStream(fin);
for(int i=0;i<2;i++)
prodotti[i]=(Prodotto)ois.readObject();
ois.close();
}
catch(StreamCorruptedException e)
{
e.printStackTrace();
}
catch(ClassCastException e)
{
e.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("ho letto");
for(int i=0;i<prodotti.length;i++)
System.out.println("i prodotti sono "+prodotti[i].GetDescrizione());
}
Il programma si blocca e nel debug di eclipse mi dice readObject(): line not availible
e inoltre mi dice che il thread è sospeso per una streamcorruptedexception.
qualcuno mi può aiutare?