Cómo descomprimir el archivo de InputStream
Estoy tratando de obtener un archivo zip desde el servidor. Im usando HttpURLConnection para obtener InputStream y esto es lo que tengo:
myInputStream.toString().getBytes().toString() is equal to [B@4..... byte[] bytes = Base64.decode(myInputStream.toString(), Base64.DEFAULT); String string = new String(bytes, "UTF-8"); string == &ܢ z m y....
Realmente he intentado descomprimir este archivo, pero nada funciona, también hay tantas preguntas, ¿debo usar GZIPInputStream o ZipInputStream? ¿Tengo que guardar esta secuencia como archivo, o puedo trabajar en InputStream
- Java calcular el tiempo entre dos timestamps
- ¿Cómo puedo convertir una parte del archivo de código fuente de Java a Kotlin?
- XmlPullParser - Analizar etiqueta analizada
- Genymotion se comunica con socket en diferentes subredes locales
- ¿Puedo estar seguro de que la aplicación Android terminó de ejecutarse comprobando isFinish () en OnPause () de la actividad principal?
Por favor, ayuda, mi jefe se impacienta: O No tengo ni idea de lo que hay en este archivo que tengo que averiguar 🙂
- ¿Cómo obtener una vista desde dentro de Espresso para pasar a un IdlingResource?
- La aplicación de Android no se inicia en simulador o hardware
- ¿Por qué la adición de una instrucción If dentro de este método lo ralentiza tan drásticamente?
- ASync Task no se puede ejecutar dos veces
- Android Development Eclipse - No puede crear un nuevo proyecto Android - Mac OS
- ¿Cómo obfuscate el proyecto con Dagger 2.0 usando Proguard?
- Biblioteca de archivos de Android (aar) vs jar estándar
- StandardCharsets.UTF_8 en API inferior a 19
Por lo general, no hay diferencia significativa entre GZIPInputStream o ZipInputStream, así que si en absoluto, ambos deberían funcionar.
A continuación, debe identificar si la secuencia comprimida fue codificada en Base64 o si algunos de los contenidos codificados en Base64 se incluyeron en una secuencia comprimida. De lo que puso en su pregunta, parece ser la última opción.
Así que deberías probar
ZipInputStream zis = new ZipInputStream( myInputStream ); ZipEntry ze = zis.getNextEntry(); InputStream is = zis.getInputStream( ze );
Y procede desde allí …
Básicamente estableciendo inputStream
para ser GZIPInputStream
debe ser capaz de leer el contenido real. También para la simplicidad usando el paquete de IOUtils
de apache.commons
hace su vida fácil
Esto funciona para mí:
InputStream is ; //initialize you IS is = new GZIPInputStream(is); byte[] bytes = IOUtils.toByteArray(is); String s = new String(bytes); System.out.println(s);
- Obtener la dirección particular utilizando latitud y longitud
- Cómo estirar Layout para llenar la pantalla?