Leyendo el archivo zip de manera eficiente en Java

Estoy trabajando en un proyecto que trabaja con una gran cantidad de datos. Tengo muchos (miles) de archivos zip, cada uno contiene UN archivo de txt simple con miles de líneas (aproximadamente 80k líneas). Lo que estoy haciendo actualmente es lo siguiente:

for(File zipFile: dir.listFiles()){
ZipFile zf = new ZipFile(zipFile);
ZipEntry ze = (ZipEntry) zf.entries().nextElement();
BufferedReader in = new BufferedReader(new InputStreamReader(zf.getInputStream(ze)));
...

De esta manera puedo leer el archivo línea por línea, pero es definitivamente demasiado lento. Dada la gran cantidad de archivos y líneas que deben leerse, debo leerlos de una manera más eficiente.

He buscado un enfoque diferente, pero no he podido encontrar nada. Lo que creo que debería usar son las API de Java nio diseñadas para operaciones de E / S intensivas, pero no sé cómo usarlas con archivos zip.

Cualquier ayuda sería realmente apreciada.

Gracias,

Marco

Respuestas a la pregunta(5)

Su respuesta a la pregunta