View Full Version : [JAVA] salvataggio e caricamento oggetto ..
ciao a tutti.. torno a rompervi le scatole con un dubbio..
allora..
io ho un oggetto che ho dichiarato static.
questo oggetto contiene due metodi: salva e carica da file, quando all'interno di un'altra classe richiamo questi due metodi il compilatore mi da errori di IOEXception oppure non salva.. vi posto il codice di entrambi i metodi:
SALVA:
public void salva() throws IOException
{
FileOutputStream outfile = new FileOutputStream ("magazzino.dat");
ObjectOutputStream outstream = new ObjectOutputStream(outfile);
outstream.writeObject(vettore_m);
}
CARICA:
public void carica() throws IOException
{
FileInputStream infile=new FileInputStream("magazzino.dat");
ObjectInputStream instream = new ObjectInputStream(infile);
//quì manca qualche cosa
}
aiutooo grazie
Può essere un problema di serializzazione. L'oggetto ObjectOutputStream traduce un oggetto in una sequenza di byte solo a certe condizioni. In particolare devi vedere se "vettore_m" implementa l'interfaccia "Serializable" e se è una lista (ad es. un Vector) che tutti i suoi elementi implementino l'interfaccia "Serializable".
grazie per la risposta..
il problema del salvataggio è nel fatto che se richiamo il metodo oggetto.salva();
mi chiede delle parentesi graffe inutili..
ti metto in allegato la parte di codice dove me le chiede..
per il caricamento da file nessun aiutino?? :p
class finestra2_jButton6_actionAdapter implements java.awt.event.ActionListener throws IOException{ // chiede una qui
{
finestra2 adaptee;
finestra2_jButton6_actionAdapter(finestra2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)throws IOException {
adaptee.jButton6_actionPerformed(e);
}
}
class finestra2_jButton7_actionAdapter implements java.awt.event.ActionListener {
finestra2 adaptee;
finestra2_jButton7_actionAdapter(finestra2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton7_actionPerformed(e);
}
}
class finestra2_jButton8_actionAdapter implements java.awt.event.ActionListener {
finestra2 adaptee;
finestra2_jButton8_actionAdapter(finestra2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton8_actionPerformed(e);
}
}// ed una qui
la classe Jbutton6 è quello che chiama il metodo salva..
infatti è l'unica con l'IOException..
La clausola throws si usa con i metodi, se la scrivi per le classi il compilatore si ribella. Per intercettare l'eccezione:
try {
...operazione che richiama il metodo save
} catch(IOException e) {
...gestione dell'eccezione "e"
}
per il metodo load
try {
...
} catch(IOexception e) {
...
} catch(ClassNotFoundException e) {
...
}
per deserializzare un oggetto
Object obj=ObjectInputStream.readObject();
poi (o durante) fai il casting dell'Oggetto obj nel tipo.
Ciao.
sei gentilissimo.. ora modifico il codice..
se ho altri problemi.. tornerò.. :cool:
sei gentilissimo.. ora modifico il codice..
se ho altri problemi.. tornerò.. :cool:
E' che sono in vacanza e me la godo un mondo :cool:
Ciao.
mi da l'errore nella riga rossa..
void jButton7_actionPerformed(ActionEvent e) throws ClassNotFoundException{
try {
finestra1.vett.carica();
finestra27 apri=new finestra27();
apri.show();
} catch(ClassNotFoundException r) {
}
"finestra2.java": Error #: 556 : exception java.lang.ClassNotFoundException is never thrown in the corresponding try block at line 118, column 6
o throws nella dichiarazione del metodo o try catch nel corpo (per lo stesso tipo di eccezione). il troppo stroppia!
anche togliendo il throw dal metodo mi da lo stesso errore..
lo so che ti stresso.. :muro:
risolto.. e funziona bene adesso..
grazie mille..
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.