Java - Écrire un Fichier CSV avec Apache.commons.csv

Je suis en utilisant le apache.commons.csv bibliothèque en Java. Je suis en train de lire un fichier CSV à partir d'une page web avec ce code:

InputStream input = new URL(url).openStream();
        Reader reader = new InputStreamReader(input, "UTF-8");

        defaultParser = new CSVParser(reader, CSVFormat.DEFAULT);
        excelParser = new CSVParser(reader, CSVFormat.EXCEL.withHeader()); 

        defaultParsedData = defaultParser.getRecords();
        excelParsedData = excelParser.getRecords();

Cependant, je ne peux pas trouver une méthode dans cette bibliothèque pour facilement écrire ce fichier sur mon ordinateur afin de l'ouvrir et de lire de suite.

J'ai essayé ce code pour enregistrer le fichier.

String outputFile = savePath+".csv";
        CSVPrinter csvFilePrinter = null;
        CSVFormat csvFileFormat = CSVFormat.EXCEL.withHeader();
        FileWriter fileWriter = new FileWriter(outputFile);
        csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);

        for (CSVRecord csvRecord : excelParser) {
            for(String dataPoint: csvRecord){
                csvFilePrinter.print(dataPoint);
            }
            csvFilePrinter.print('\n');
         }

        fileWriter.flush();
        fileWriter.close();
        csvFilePrinter.close();

Cependant, lorsque je tente de lire le fichier avec ce code, rien ne s'imprime:

InputStream input = new FileInputStream(cvsFilePath);
        Reader reader = new InputStreamReader(input, "UTF-8");

        CSVParser load = new CSVParser(reader, CSVFormat.EXCEL);
        //TEST THAT IT WORKED
        java.util.List<CSVRecord> testlist = load.getRecords();
        CSVRecord dataPoint = testlist.get(0);
        System.out.println("print: " + dataPoint.get(0));

Ce n'imprime que "impression:"
Si j'ajoute

System.out.println("print: " + dataPoint.get(1));

il donne une

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1

Quand j'ai ouvert le CSV sauvegardé le fichier avec le bloc-notes il y a une ligne vide, puis:

2016-03-04,714.98999,716.48999,706.02002,710.890015,1967900,710.890015,"
",2016-03-03,718.679993,719.450012,706.02002,712.419983,1956800,712.419983," ",2016-03-02,719.00,720.00,712.00,718.849976,1627800,718.849976,"

Qu'entendez-vous par "impossible d'écrire les données correctement" ?
Eh bien, je suis sûr que je n'ai pas écrit le code correctement. Le fichier qui enregistre n'est pas le même fichier que pour lire une page web. J'ai pensé que il devrait y avoir une simple méthode intégrée dans Apache Commons pour enregistrer un fichier dans un analyseur syntaxique, mais je ne pouvais pas en trouver un, j'ai donc tenté de le faire de cette façon.
Pourriez-vous montrer un exemple de l'entrée et de la sortie ?
J'obtiens une erreur "le Fichier n'est pas chargé complètement" quand j'essaie de l'ouvrir dans Excel. J'ai mis à jour l'OP avec le code que j'utilise pour lire à partir du fichier sauvegardé.
L'ouvrir avec un simple éditeur de texte (bloc-notes, que ce soit..) et coller le contenu dans votre question .

OriginalL'auteur jonbon | 2016-03-29