BAEL-6644-read-zip-entries (#14321)

* read zip file entries

* add unit test

* update test code
This commit is contained in:
vunamtien 2023-07-03 17:04:44 +07:00 committed by GitHub
parent b119316bf4
commit 8e336ba020
3 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,31 @@
package com.baeldung.zipentries;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Scanner;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class ZipEntryReader {
public static void readZipEntries(String filePath) throws IOException {
try (ZipFile zipFile = new ZipFile(filePath)) {
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
// Check if entry is a directory
if (!entry.isDirectory()) {
// Read and process the entry contents using the inputStream
try (InputStream inputStream = zipFile.getInputStream(entry);
Scanner scanner = new Scanner(inputStream);) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
}
}
}
}
}
}

View File

@ -0,0 +1,17 @@
package com.baeldung.zipentries;
import org.junit.Test;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ZipEntryReaderTest {
@Test
public void givenZipFile_thenReadEntriesAndValidateContent() throws URISyntaxException, IOException {
Path zipFilePath = Paths.get(getClass().getClassLoader().getResource("zipFile.zip").toURI());
ZipEntryReader.readZipEntries(zipFilePath.toString());
}
}