From 8e336ba02080fecaea235875b763c010ddd9551a Mon Sep 17 00:00:00 2001 From: vunamtien Date: Mon, 3 Jul 2023 17:04:44 +0700 Subject: [PATCH] BAEL-6644-read-zip-entries (#14321) * read zip file entries * add unit test * update test code --- .../baeldung/zipentries/ZipEntryReader.java | 31 ++++++++++++++++++ .../zipentries/ZipEntryReaderTest.java | 17 ++++++++++ .../src/test/resources/zipFile.zip | Bin 0 -> 482 bytes 3 files changed, 48 insertions(+) create mode 100644 core-java-modules/core-java-20/src/main/java/com/baeldung/zipentries/ZipEntryReader.java create mode 100644 core-java-modules/core-java-20/src/test/java/com/baeldung/zipentries/ZipEntryReaderTest.java create mode 100644 core-java-modules/core-java-20/src/test/resources/zipFile.zip diff --git a/core-java-modules/core-java-20/src/main/java/com/baeldung/zipentries/ZipEntryReader.java b/core-java-modules/core-java-20/src/main/java/com/baeldung/zipentries/ZipEntryReader.java new file mode 100644 index 0000000000..a353837e08 --- /dev/null +++ b/core-java-modules/core-java-20/src/main/java/com/baeldung/zipentries/ZipEntryReader.java @@ -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 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); + } + } + } + } + } + } +} diff --git a/core-java-modules/core-java-20/src/test/java/com/baeldung/zipentries/ZipEntryReaderTest.java b/core-java-modules/core-java-20/src/test/java/com/baeldung/zipentries/ZipEntryReaderTest.java new file mode 100644 index 0000000000..2eb47ff057 --- /dev/null +++ b/core-java-modules/core-java-20/src/test/java/com/baeldung/zipentries/ZipEntryReaderTest.java @@ -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()); + } +} diff --git a/core-java-modules/core-java-20/src/test/resources/zipFile.zip b/core-java-modules/core-java-20/src/test/resources/zipFile.zip new file mode 100644 index 0000000000000000000000000000000000000000..3fc509651f7fea8700482c899da099cd6ce8aaba GIT binary patch literal 482 zcmWIWW@h1H0D;u1hhZ_SMa?omHVAV9aav|hs-s>>MM+6UX0ZYgm1LwUB literal 0 HcmV?d00001