When we create a ZipInputStream z, we call getNextEntry on it and then read from z, in order to get the contents of the next file. I, however, need to get ZipInputStreams for those files to read from them later. How do I do that? Just create n ZipInputStreams, and call getNextEntry on the first one 1 time, on the second one 2 times, ..., on the nth one n times? Is there a more elegant way to do that than this?
I can't just read each entry into an array of bytes, because that will consume too much RAM, when the files are large and the max size of such a file can only be 2 gigs (we can't create byte[] arrays larger than that in Java), but I have larger files.