das ist mein Code
ByteArrayOutputStream serialString = new ByteArrayOutputStream();
try{
ObjectOutputStream output = new ObjectOutputStream(serialString);
output.writeObject(createTransferFormTableRows());
output.flush();
ByteArrayInputStream serialString1 = new
ByteArrayInputStream(serialString.toString().getBytes());
ObjectInputStream input = new ObjectInputStream(serialString1);
ArrayList rows = (ArrayList)input.readObject();
}catch(IOException ioex){
ioex.printStackTrace();
}catch(ClassNotFoundException cnex){
cnex.printStackTrace();
}
private ArrayList createTransferFormTableRows(){
ArrayList rows = new ArrayList(table.getSelectedRowCount());
HashMap row = new HashMap(table.getColumnCount());
int[] selectedRows = table.getSelectedRows();
for(int rowCount=0; rowCount < selectedRows.length; rowCount++){
for(int column=0; column < table.getColumnCount();column++){
row.put(table.getColumnName(column),table.getValueAt(column,selectedRows[row
Count]));
}
}
return rows;
}
Das die Exception mit der Verursacher Zeile ArrayList rows =
(ArrayList)input.readObject();
java.io.InvalidClassException: java.util.ArrayList; local class
incompatible: stream classdesc
serialVersionUID = 8664875232659988799, local class serialVersionUID =
8683452581122892189
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1521)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
Ich Serialisiere erst eine ArrayList und anschliessend deserialisierte ich
die ArrayList.
Bei input.readObject() ist dann aber Schluss. Ist das nach dem serialisieren
keine ArrayList mehr.
Die serialVersionUID deuten darauf hin ?!?!
Was meint Ihr dazu?
> Was meint Ihr dazu?
nimm nicht toString().getBytes(), sondern nur getBytes() und arbeite
mit einem Byte-Array. Hier der Grund:
http://groups.google.de/groups?threadm=alt5a8%24jit%2405%241%40news.t-online.com
--
Frank Buß, f...@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
"Frank" <Fr...@gmx.de> wrote:
> Was meint Ihr dazu?
nimm nicht toString().getBytes(), sondern direkt toByteArray() und arbeite