Nezkoušel jsem to, ale první co mě napadá, je dělat tu deserializaci trochu víc
"manuálně". Co tím myslím: u těch datových tříd přetížit jejich metody pro
čtení něčím jako:
private void readObject(java.io.ObjectInputStream stream) throws IOException,
ClassNotFoundException {
try {
stream.defaultReadObject();
} catch (EOFException e) {
// a neco delat, lze predpokladat, ze nektere atributy teto
tridy uz jsou deserializovane ...
}
}
Snad tenhle snippet ukazuje alespoň dobrým směrem.
Jiří Holý
On 19/06/2014 8:28 a.m., Jaroslav Kačer wrote:
> Dobrý den!
>
> Mám soubor o velikosti několika MB, který obsahuje serializované javovské
> objekty (bajtkód i zdrojáky mám). Problém je v tom, že tento soubor je z
> nějakého důvodu useknutý, tudíž deserializace oprávněně skončí s výjimkou
> EOFException.
>
> Chtěl bych z těch dat přečíst alespoň něco, co se dá. Nenapadá vás nějaký
> způsob, jak o provést? Zkusil jsem například nástroj "jdeserialize" [1], ale
> bohužel padá také.
>
> Celý obsah je jeden objekt, ve kterém jsou vnořeny další objekty, tudíž
> nemůžu použít deserializaci "po kouskách", kdy bych si načtený objekt někam
> uložil a zkusil další. Je to jedno volání ObjectInputStream.readObject().
>
> Nemáte na to někdo nějaký fígl?
>
> Předem děkuji za jakýkoliv tip!
>
> Jarda
>
>
> [1] https://code.google.com/p/jdeserialize/
>
>