PDA

Visualizza la versione completa : [Java] File


useralex
08-03-2005, 22:33
Domanda da un milione di dollari: tra le tante librerie di I/O di java, ne esiste una che permette di salvare su un file un ogetto (qualunque esso sia)? (E ovviamente una che poi sia in grado di andarlo a rileggere). Se si quali sono. Mi spiego meglio: Ho una classe di nome, per esempio, "Edificio"; vorrei, una volta creato l'oggetto "casa_mia" di tipo "Edificio", salvare questo oggetto (tutti i campi) su un file e poterlo successivamente riaprire. E' possibile? Grazie.

LeleFT
08-03-2005, 22:44
Ovviamente esiste e si usa la serializzazione.
Le classi che intendi salvare su file devono implementare l'interfaccia Serializable (http://java.sun.com/j2se/1.4.2/docs/api/java/io/Serializable.html) .
Per salvare su file utilizzi la classe ObjectOutputStream (http://java.sun.com/j2se/1.4.2/docs/api/java/io/ObjectOutputStream.html) e per leggere usi la classe ObjectInputStream (http://java.sun.com/j2se/1.4.2/docs/api/java/io/ObjectInputStream.html) .

Segui i link per la documentazione.

Se hai bisogno di esempi siamo sempre qui! :)


Ciao. :ciauz:

useralex
08-03-2005, 22:57
Si, magari, un esempio, anche se molto elementare, mi farebbe molto comodo (Non mi trovo molto a mio agio con l'inglese). Grazie comunque per la risposta.

anx721
09-03-2005, 00:23
La classe da serializzare e tutti i suoi membri devono implementare l'interfaccia Serializable,che non ha metodi. Quindi per scrivere un oggetto mio_oggetto:



try{
ObjectOutputStream out =
new BufferedOutputStream(
new FileOutputStream(file));
out.writeObject(mio_oggetto);
out.close();
}
catch (Exception e){
System.out.println(e);
}

per leggere:



MiaClasse mio_oggetto = null;
try{
ObjectInputStream in =
new BufferedInputStream(
new FileInputStream(file));
mio_oggetto = (MiaClasse)in.readObject();
in.close();
}
catch (Exception e){
System.out.println(e);
}

Loading