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
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 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"); }
Il programma si blocca e nel debug di eclipse mi dice readObject(): line not availiblecodice: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()); }
e inoltre mi dice che il thread è sospeso per una streamcorruptedexception.
qualcuno mi può aiutare?

Rispondi quotando


