Java 如何使用openCSV读取单独的ArrayList?
我试图读取一个csv文件,该文件有3列和未指定的行数。然后我试着把每一列都读入自己的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 =
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]);
}