J'ai une URL avec un fichier .zip qui contient des fichiers .CSV.Télécharger un fichier zip, extraire le fichier CSV et l'analyser - Tout en mémoire - Java
J'écris une application en Java qui doit télécharger ce fichier .zip et accéder aux fichiers CSV dans le fichier .zip et les analyser dans une liste de CSVRecords en utilisant Apache Commons CSV. Je ne veux pas avoir à écrire un fichier sur le disque, car c'est une perte de performance.
C'est ce que j'ai jusqu'à présent (j'omis toute erreur de manipulation pour l'instant, il est juste un POC):
URL url = new URL(myURLString);
InputStream input = url.openStream();
ZipInputStream zipIn = new ZipInputStream(input);
ZipEntry entry;
while((entry = zipIn.getNextEntry()) != null) {
InputStreamReader isr = new InputStreamReader(zipIn);
CSVParser csv = new CSVParser(isr, CSVFormat.DEFAULT);
List<CSVRecord> records = csv.getRecords(); <----- THIS IS WHERE IT HANGS!
}
Pour une raison quelconque, je ne peux pas comprendre pourquoi il se bloque lorsque les essais de CSVParser lire les fichiers. Toute aide est grandement appréciée!
P.S .: Je peux lire un fichier CSV très bien quand il est pas dans un zip, comme tel:
URL url = new URL(myURLString);
InputStream input = url.openStream();
InputStreamReader reader= new InputStreamReader(input);
CSVParser csv = new CSVParser(reader, CSVFormat.DEFAULT);
List<CSVRecord> records = csv.getRecords();
pouvez-vous essayer CSVFormat.Excel et laissez-moi savoir ce qui se passe? – user641887
Il se bloque juste là, ne retourne rien –
Pouvez-vous vous assurer que le contenu du fichier zip est correct et il a tous les fichiers avec des extensions .csv seulement – user641887