I am trying to find a file within a zip file and get it as an InputStream. So this is what I am doing to get it so far and I am not certain if I am doing it correctly.
Here is a sample as the original is slightly longer but this is the main component…
public InputStream Search_Image(String file_located, ZipInputStream zip)
throws IOException {
for (ZipEntry zip_e = zip.getNextEntry(); zip_e != null ; zip_e = zip.getNextEntry()) {
if (file_located.equals(zip_e.getName())) {
return zip;
}
if (zip_e.isDirectory()) {
Search_Image(file_located, zip);
}
}
return null;
}
Now the main problem I am facing is that The ZipInputStream in Search_Image is the same as the original component of the ZipInputStream…
if(zip_e.isDirectory()) {
//"zip" is the same as the original I need a change here to find folders again.
Search_Image(file_located, zip);
}
Now for the question, how do you get the ZipInputStream as the new zip_entry? Also please add in if I did anything wrong in my method as my logic with this class is still lacking.
You should use the class
ZipFilewithout worrying yourself with an input stream if you don’t need it yet.Some facts:
Search_Imageis not fine,searchImageis)endsWith(name)because the file could be inside a folder and a filename inside a zip always contains the path