Java 如何使用openCSV读取单独的ArrayList?

Java 如何使用openCSV读取单独的ArrayList?,java,arraylist,sequential,opencsv,Java,Arraylist,Sequential,Opencsv,我试图读取一个csv文件,该文件有3列和未指定的行数。然后我试着把每一列都读入自己的arrayList中。第一栏是名字,第二栏是分数,第三栏是难度。任何帮助都将不胜感激。 当前代码: public static void main(String[]args) throws IOException{ ReadFile f = new ReadFile(); } public CSVReader reader; ReadFile(){ ArrayList myEntries =

我试图读取一个csv文件,该文件有3列和未指定的行数。然后我试着把每一列都读入自己的arrayList中。第一栏是名字,第二栏是分数,第三栏是难度。任何帮助都将不胜感激。 当前代码:

public static void main(String[]args) throws IOException{
    ReadFile f = new ReadFile();
}

public CSVReader reader;

ReadFile(){
    ArrayList myEntries = new ArrayList<>();
    ArrayList<String> nameList = new ArrayList<>();
    ArrayList<String> scoreList = new ArrayList<>();
    ArrayList<String> difficultyList = new ArrayList<>();

    try {
        reader = new CSVReader(new FileReader("H:\\S6\\AH Computing\\Java Practice\\leaderboard.csv"));
    } catch (FileNotFoundException ex) {
        Logger.getLogger(ReadFile.class.getName()).log(Level.SEVERE, null, ex);
    }
    try {
        myEntries.add(reader.readAll());
    } catch (IOException ex) {
        Logger.getLogger(ReadFile.class.getName()).log(Level.SEVERE, null, ex);
    }

    for(int i = 1; i< myEntries.size();i++){
        try {
        myEntries.add(reader.readNext());
    } catch (IOException ex) {
        Logger.getLogger(ReadFile.class.getName()).log(Level.SEVERE, null, ex);
    }
    }

    for(int i = 1; i< myEntries.size();i++){
        nameList.add((String) myEntries.get(i));
        i++;
        scoreList.add((String) myEntries.get(i));
        i++;
        difficultyList.add((String) myEntries.get(i));
    }
}

你的代码有几个问题。首先,CSVReader readAll方法读取整个文件并返回一个列表,以便在代码中更改myEntries.addreader.readAll;到myEntries.addAllreader.readAll

也就是说,现在您已经将整个文件读取到内存中,无需执行readNext。因此,删除整个try/catch

现在你有了一份清单,所以改变一下

for(int i = 1; i< myEntries.size();i++){
        nameList.add((String) myEntries.get(i));
        i++;
        scoreList.add((String) myEntries.get(i));
        i++;
        difficultyList.add((String) myEntries.get(i));
    }

一些打字可能是必要的


有关更多信息,请参阅的opencsv javadocs

您的代码以什么方式不工作?代码编译。它一开始不会读取文件,因为当我试图打印myEntries时,它不会打印任何内容。文件路径是正确的,正如我之前写入同一个文件。我会删除所有的异常捕获,并在最后有一个。实际上,如果文件不存在,它仍会尝试读取它。您是否收到任何错误?没有错误,将更改异常处理。
for(int i = 1; i< myEntries.size();i++){
        String[] entries = myEntries.get(i);
        nameList.add(entries[0]);
        scoreList.add(entries[1]);
        difficultyList.add(entries[2]);
    }