From 7cca3b75222b3416e27d4a68358ecc11bde736cc Mon Sep 17 00:00:00 2001 From: yann Date: Wed, 16 Dec 2020 19:23:55 +0100 Subject: [PATCH] modif DataCsv.java et repertoir test --- src/main/java/fr/myny/data/DataCsv.java | 55 +++++++++++++++++++-- src/main/java/fr/myny/data/ImportData.java | 4 ++ src/main/java/test.java | 7 --- src/test/java/fr/myny/data/DataCsvTest.java | 12 +++++ 4 files changed, 68 insertions(+), 10 deletions(-) delete mode 100644 src/main/java/test.java create mode 100644 src/test/java/fr/myny/data/DataCsvTest.java diff --git a/src/main/java/fr/myny/data/DataCsv.java b/src/main/java/fr/myny/data/DataCsv.java index a0b8073..297d439 100644 --- a/src/main/java/fr/myny/data/DataCsv.java +++ b/src/main/java/fr/myny/data/DataCsv.java @@ -1,8 +1,13 @@ package fr.myny.data; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + public class DataCsv { - - /** * Le constructeur de DataCsv */ @@ -13,7 +18,51 @@ public class DataCsv { /** * La methode de recuperation dun fichier csv */ - public void getCsv(){ + public void getCsv() throws IOException{ + String fileZip = "src/main/java/resources/loto_201911.zip"; + File desDir = new File("src/main/java/resources/"); + byte[] buffer = new byte[1024]; + ZipInputStream zis = new ZipInputStream(new FileInputStream(fileZip)); + ZipEntry zipEntry = zis.getNextEntry(); + while (zipEntry != null){ + File newFile = newFile(desDir, zipEntry); + if (zipEntry.isDirectory()){ + if (!newFile.isDirectory() && !newFile.mkdirs()){ + throw new IOException("Failed to create directory " + newFile); + } + } else{ + File parent = newFile.getParentFile(); + if (!parent.isDirectory() && !parent.mkdirs()) { + throw new IOException("Failed to create directory " + parent); + } + FileOutputStream fos = new FileOutputStream(newFile); + int len; + while ((len = zis.read(buffer)) > 0){ + fos.write(buffer, 0, len); + } + fos.close(); + } + zipEntry = zis.getNextEntry(); + } + zis.closeEntry(); + zis.close(); } + + /** + * Methode d'extraction de fichier zip + */ + public File newFile(File destinationDir, ZipEntry zipEntry) throws IOException{ + File destFile = new File(destinationDir, zipEntry.getName()); + + String destDirPath = destinationDir.getCanonicalPath(); + String destFilePath = destFile.getCanonicalPath(); + + if (!destFilePath.startsWith(destDirPath + File.separator)){ + throw new IOException("Entry is outside of the target dir: " + zipEntry.getName()); + } + + return destFile; + } + } diff --git a/src/main/java/fr/myny/data/ImportData.java b/src/main/java/fr/myny/data/ImportData.java index b4e2481..41a028a 100644 --- a/src/main/java/fr/myny/data/ImportData.java +++ b/src/main/java/fr/myny/data/ImportData.java @@ -22,4 +22,8 @@ public class ImportData { */ public void getUrl(){ } + + public void unzip() { + + } } diff --git a/src/main/java/test.java b/src/main/java/test.java deleted file mode 100644 index 604d790..0000000 --- a/src/main/java/test.java +++ /dev/null @@ -1,7 +0,0 @@ -public class test{ - public static void main(String[] args){ - System.out.println("Il n'y a rien a voir !"); - System.out.println("nico fait un test"); - System.out.println("Il Je test les branchs"); - } -} \ No newline at end of file diff --git a/src/test/java/fr/myny/data/DataCsvTest.java b/src/test/java/fr/myny/data/DataCsvTest.java new file mode 100644 index 0000000..0d240f3 --- /dev/null +++ b/src/test/java/fr/myny/data/DataCsvTest.java @@ -0,0 +1,12 @@ +package fr.myny.data; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; +class DataCsvTest { + + @Test + void getCsv() { + + } +} \ No newline at end of file