--
You received this message because you are subscribed to the Google Groups "scala-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-user+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
`java.util.zip.ZipFile` gives you a list of entries in the original (as a `ZipEntry`).The `getInputStream` method gives you a `java.io.InputStream` for each of those entries. If it's a text file, you can read that in as lines in any number of ways (including `scala.io.Source.fromInputStream`). If it's a zip file, wrap it in `java.util.zip.ZipInputStream`. Now you have to use the `getNextEntry` and `read` methods (after checking how much to read by querying the entry) until the zip file is empty. If you want to do it recursively, you probably need to buffer that `read` and make an `InputStream` out of it (I've called this `ProxyInputStream` in the past; it just takes an input stream and a maximum size and forwards all calls to the underlying input stream except that it fixes up the positions and sizes). Then you can wrap recursively in `ZipInputStream` if you need to.