Ho bisogno di x applicazioni che salvino un file e una app y che riesca a immagazzinare tutti i dati delle varie app x, ho pensato di risolvere con i file serializzati.
L'applicazione x (quella che andrà a scrivere) è questa
Codice: Seleziona tutto
import java.io.*;
public class M implements Serializable {
Oggetto o[] = new Oggetto[10000];
public static void main(String args[]) {
FileOutputStream fout;
ObjectOutputStream oos;
M a=new M();
a.o[0]=new Oggetto();
a.o[0].s="test";
try {
fout = new FileOutputStream("file");
oos = new ObjectOutputStream(fout);
oos.writeObject(a);
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.Serializable;
public class Oggetto implements Serializable{
String s=null;
}
mentre quella in scrittura è questa (il codice incriminato
Codice: Seleziona tutto
import java.io.*;
public class M implements Serializable {
static Oggetto o[] = new Oggetto[10000];
public static void main(String args[]) {
FileInputStream s;
ObjectInputStream ois;
M a;
try{
s=new FileInputStream("file");
ois=new ObjectInputStream(s);
a=(M)ois.readObject();
System.out.println("prova:"+a.o[0].s);
}catch(FileNotFoundException ex){
System.out.println("file non trovato");
}catch(IOException ex){
ex.printStackTrace();
}
catch(ClassNotFoundException ex){
System.out.println("classe non trovata");
}
}
}
import java.io.Serializable;
public class Oggetto implements Serializable{
String s=null;
}
Codice: Seleziona tutto
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
java.io.InvalidClassException: M; local class incompatible: stream classdesc serialVersionUID = 7625462938416457373, local class serialVersionUID = 6505330590483448879
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at M.main(M.java:20)
BUILD SUCCESSFUL (total time: 0 seconds)
