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

Por favor, ayuda, mi jefe se impacienta: O No tengo ni idea de lo que hay en este archivo que tengo que averiguar 🙂

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); 
  • Cómo borrar el contenido del archivo de texto sin borrarlo
  • ¿Cómo detectar mediante programación en qué país se encuentra el dispositivo Android actualmente sin utilizar GPS?
  • ProcessException: ExecException: Process 'command' /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Content/Home/bin/java
  • Llamar al método MainActivity de otras clases (que amplían el receptor de difusión)
  • findViewByID () sigue devolviendo null en la clase de vista personalizada
  • Creación de aplicaciones de mapas de muestras monodroide
  • Android: ¿Cómo crear un TextView circular?
  • Ordenar una lista basada en otra lista
  • Cómo abrir una página web en Google Chrome incógnito desde la aplicación Android
  • Enviar eficientemente int a través de sockets en Java
  • El archivo de diseño de Android no permite caracteres como &, <,>
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.