I have code, where ZipInputSream is converted to byte[], but I don’t know how I can convert that to inputstream.
private void convertStream(String encoding, ZipInputStream in) throws IOException, UnsupportedEncodingException { final int BUFFER = 1; @SuppressWarnings("unused") int count = 0; byte data[] = new byte[BUFFER]; while ((count = in.read(data, 0, BUFFER)) != -1) { // How can I convert data to InputStream here ? } }
Advertisement
Answer
Here is how I solved this problem. Now I can get single files from ZipInputStream to memory as InputStream.
private InputStream convertZipInputStreamToInputStream(ZipInputStream in, ZipEntry entry, String encoding) throws IOException { final int BUFFER = 2048; int count = 0; byte data[] = new byte[BUFFER]; ByteArrayOutputStream out = new ByteArrayOutputStream(); while ((count = in.read(data, 0, BUFFER)) != -1) { out.write(data); } InputStream is = new ByteArrayInputStream(out.toByteArray()); return is; }