Проблема: не удается разрешить конструктор CSVPrinter - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь сгенерировать и загрузить файл CSV, и возникла проблема с CSVPrinter.Оператор выглядит следующим образом:

Не удается разрешить конструктор CSVPrinter (java.io.BufferedWriter, org.apache.commons.csv.CSVFormat) "

import org.apache.commons.csv.CSVFormat; 
import org.apache.commons.csv.CSVParser; 
import org.apache.commons.csv.CSVPrinter; 
import org.apache.commons.csv.CSVRecord; 
import java.io.BufferedWriter; 
import java.io.*; 
import java.net.URL; 
import java.nio.file.Files; 
import java.nio.file.Paths;

    try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(file.getAbsolutePath()));
         CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT
                    .withHeader("title", "description", "priority"))

    ) {

        for (int i = 0; i < serializer.toDO.size(); i++){
            csvPrinter.printRecord(serializer.toDO.get(i).getTitle(),
                    serializer.toDO.get(i).getDescription().replace("\n"," "),
                    serializer.toDO.get(i).getPriority(),
                    serializer.toDO.get(i).getLocalDate(),
                    "toDo");
        }

1 Ответ

0 голосов
/ 10 мая 2019

Если вы используете вариант apache, ваш код сработал для меня.

Я думаю, вам нужно добавить некоторые детали, которые, как вы уверяете, вы сделали.Я предполагаю, что у вас неправильная библиотека в вашем проекте / classpath.

  • В какой среде вы запускаете свой код (в среде IDE или отдельно от командной строки)?
  • Как вы включили библиотеку (загрузите JAR напрямую из Apache или автоматически через службу - например, maven)?

Вот моя версия исходного кода:

package csvwriter;

import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.csv.CSVFormat;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Main m = new Main();
        m.go(args);
    }

    public void go(String [] args) {
        File file = new File (args[0]);
        try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(file.getAbsolutePath()));
         CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT
                    .withHeader("title", "description", "priority"))

    ) {
            System.out.println("Done.");
//        for (int i = 0; i < serializer.toDO.size(); i++){
//            csvPrinter.printRecord(serializer.toDO.get(i).getTitle(),
//                    serializer.toDO.get(i).getDescription().replace("\n"," "),
//                    serializer.toDO.get(i).getPriority(),
//                    serializer.toDO.get(i).getLocalDate(),
//                    "toDo");
//        }
    }   catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Здесьмои библиотеки:

Project structure in Netbeans - showing libraries

Я скачал библиотеку из apache центра загрузки

Когда я запускаю,В качестве вывода я получаю следующее:

run:
Done.
BUILD SUCCESSFUL (total time: 0 seconds)

Повторение этого упражнения в IntelliJ (Java Project, включающий apache-commons-csv-1.6) через Maven, дает тот же результат:

"C:\Program Files\Java\jdk1.8.0_172\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1\lib\idea_rt.jar=59482:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_172\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_172\jre\lib\rt.jar;C:\cygwin64\home\gm310509\Projects\Learning\Miscellaneous\CSVPrinter\out\production\CSVPrinter;C:\cygwin64\home\gm310509\Projects\Learning\Miscellaneous\CSVPrinter\lib\commons-csv-1.6.jar" stackoverflow.Main c:\temp\resistor.html
Done.

Process finished with exit code 0

Вот диалог «Добавить библиотеку через maven»:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...