Dada¿Cómo extraer un solo archivo de un archivo de almacenamiento remoto?
- URL de un archivo (por ejemplo, un archivo zip)
- Nombre completo (incluyendo la ruta) de un archivo dentro de ese archivo
estoy buscando una manera (de preferencia en Java) para crear una copia local de ese archivo, sin descargar todo el archivo primero.
Según mi (limitado) entendimiento, debería ser posible, aunque no tengo ni idea de cómo hacerlo. He estado usando TrueZip, ya que parece admitir una gran variedad de tipos de archivos, pero tengo dudas sobre su capacidad para trabajar de esa manera. ¿Alguien tiene alguna experiencia con ese tipo de cosas?
EDITAR: también es importante para mí hacer tarballs y tarballs con cremallera.
Gracias; esto parece funcionar bien (barra errores menores), aunque desafortunadamente esto no puede manejar nada excepto archivos comprimidos. – Oak
Bueno, sí, ¿por qué crees que se llama 'ZipInputStream'? ;-) Si buscas en Internet, es posible que puedas encontrar un 'TarInputStream' que podrías usar más o menos de la misma manera; de lo contrario, podrías escribir el tuyo. Sería fácil porque los archivos tar no están comprimidos, básicamente es solo un encabezado para cada archivo seguido de los datos del archivo. (Wikipedia tiene una descripción del formato) Para los archivos tar de gzipped, la biblioteca estándar de Java tiene un 'GZIPInputStream' que puede usar junto con la transmisión tar. –
De hecho, Apache tiene una clase [TarInputStream] (http://javadoc.haefelinger.it/org.apache.ant/1.7.1/org/apache/tools/tar/TarInputStream.html) :) – Oak