2017-10-18 21 views
0

Je suis en train de desirialize byte [] à la liste des objets mais obtenirJava désérialisation de la liste des objets

java.io.StreamCorruptedException: invalid stream header: 724F3041 error. 

Qu'est-ce que je fais mal?

public static List<Object> getDeserialized(byte serializeStringAsArray[]) throws IOException, Exception { 

    ByteArrayInputStream bais = new ByteArrayInputStream(serializeStringAsArray); 
    ObjectInputStream in = new ObjectInputStream(bais); 

    List<Object> objectAsDeserialize = (List<Object>) in.readObject(); 

    bais.close(); 
    in.close(); 
    return objectAsDeserialize ; 
} 

Merci beaucoup

+0

Je ne pense pas que le problème réside dans ces lignes de code. –

+0

Cela signifie que le tableau d'octets que vous essayez de désérialiser est corrompu. Vous pourriez vouloir regarder le code qui sérialise la liste (en supposant que vous l'ayez) – user1675642

+1

Le nom 'serializeStringAsArray' du paramètre laisse tomber une indication que le tableau ne contient pas la liste sérialisée d'objet. Êtes-vous sûr que le tableau est constitué de ce que vous attendez? – Nolequen

Répondre

0

L'en-tête de flux est le cadeau: 724F3041. Cette donnée n'a pas été produite par un ObjectOutputStream, donc vous ne pouvez pas le lire avec un ObjectInputStream.

+0

Merci. Creuser le code, j'ai remarqué que les données ont été codées après le sérialisé. – userit1985