Modificar el contenido de un zip o jar mediante java

marc
11 de Febrero del 2004
Quiero leer un fichero zip o jar, encontrar una determinada clase y borrarla o substituirla por otra.

el algoritmo que utilizo es:
-creo un deflater
-abro el zip de entrada
-creo un zip de salida
-leo en un byte[] el fichero class que quiero anadir al zip de salida
-comprimo el byte[] para anadirlo al zip
-recorro el zip de entrada,
-----si la entrada coincide con el fichero que quiero substituir, escribo el byte[] que he generado al principio
-----si no, escribo lo mismo que he leido
-cierro todos los inputs y outputs

El fichero zip que creo asi, es valido, pero la clase que he comprimido me da un error de InvalidMagicNumber

Agradezco vuestra ayuda de antemano