Tengo un archivo ZIP que está incrustado dentro de un archivo más grande. Sé el desplazamiento de inicio del archivo dentro del archivo más grande y su longitud.Lectura de archivos desde un archivo ZIP incrustado
¿Hay alguna biblioteca de Java que me permita leer directamente los archivos contenidos en el archivo? Estoy pensando en las líneas de ZipFile.getInputStream()
. Desafortunadamente, ZipFile
no funciona para este caso de uso ya que sus constructores requieren un archivo ZIP independiente.
Por motivos de rendimiento, no puedo copiar el archivo adjunto ZIP en un archivo por separado antes de abrirlo.
edit: Para que quede claro, tengo acceso aleatorio al archivo.
'java.util.zip.ZipInputStream.ZipInputStream (InputStream)'? – artbristol
Difícil. Con un archivo ZIP, primero debe leer el directorio, que está al final, por lo que necesita acceso aleatorio.Usted * podría * leer todas las entradas de una vez desde el principio, y eso funcionaría con la mayoría de los archivos zip, pero el formato en sí mismo permite cosas divertidas como entradas duplicadas y datos basura aleatorios entre las entradas. – Thilo
@Thilo: Para que quede claro, tengo acceso aleatorio al archivo. – NPE