2010-12-03 6 views
0

le code suivant lève l'exception:problème NotSerializableException

public class TestObject implements Serializable{ 

    private static final long serialVersionUID = 1L; 

    public String value; 

} 


DbByteArrayOutputStream out = new DbByteArrayOutputStream(); 
ObjectOutputStream objOut = new ObjectOutputStream(out); 
objOut.writeObject(objOut); 
objOut.flush(); 
out.writeTo(file); 
objOut.close(); 
out.close(); 

public class DbByteArrayOutputStream extends ByteArrayOutputStream { 
    public DbByteArrayOutputStream() { 
    super(); 
} 

public synchronized void writeTo (RandomAccessFile file) throws IOException { 
    byte[] data = super.buf; 
    int l = super.size(); 
    file.writeInt(l); 
    file.write(data, 0, l); 
    } 
} 

Pourquoi? Merci.

Répondre

6

C'est le problème:

ObjectOutputStream objOut = new ObjectOutputStream(out); 
objOut.writeObject(objOut); 

Vous essayez de sérialiser le flux lui-même. Cela n'a aucun sens. Je suppose que vous vouliez dire:

objOut.writeObject(new TestObject()); 

ou quelque chose de similaire.

+0

Erreur stupide. Je suis désolé. – ilpizze

+0

Acceptez la réponse d'ilpizze. Vous obtenez des points aussi :) – Vituel

+0

@Vituel: Euh, quoi? Ilpizze a posé la * question * ... J'ai donné la réponse. –