java - 将csv文件读取到arraylist对象

标签 java csv arraylist

问题出在 CVSParser类(class)。我需要读取 .CSV 文件,然后将其传递给 ArrayList<Club>

示例.csv
球队,W,D,L,GF,GA
阿森纳,24,7,7,68,41
阿斯顿维拉,10,8,20,39,61
...

俱乐部类(class)

public Club(String team, int w, int l, int d, int GF, int GA) {
        ...
    }

CSVParser 类

public static ArrayList<Club> CSVParser(String file) throws IOException{

        ArrayList<Club> Lists = new ArrayList<>();
        try{
        Scanner scanner = new Scanner(new FileReader(file));
        scanner.nextLine();

        while(scanner.hasNextLine()){
            String line = scanner.nextLine();
            //System.out.println(line);

            /*will get ArrayIndexOutOfBoundsException: 0 error */
            String[] splits = line.split(",");
            Lists.add(new Club(splits[0], Integer.parseInt(splits[1]),Integer.parseInt(splits[2]), 
                    Integer.parseInt(splits[3]), Integer.parseInt(splits[4]), Integer.parseInt(splits[5])));

        }scanner.close();
        }catch(FileNotFoundException e){
            e.printStackTrace();
        }

        System.out.println(Lists);
        return Lists;

最佳答案

首先,这才是扫描仪的正确使用方法

Scanner s = new Scanner(input).useDelimiter(",");
int w = s.nextInt());

否则,只需使用 BufferedReader

接下来,您的 csv 文件中有一个或多个空行,您应该在拆分之前检查行长度,例如:

if (line.trim().length() > 0) {
    String[] splits = line.split(",");
}

关于java - 将csv文件读取到arraylist对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28989676/

相关文章:

java - 为什么我们必须在扩展的 PersistenceContext 中手动 flush() EntityManager?

powershell - 将所有本地成员和组一起显示

java - 在 CSV 写入中转义 ',' 不起作用

python - psycopg2 "NULL"来自 csv 的值用于 sql 插入

java - 有什么方法可以将一个条目添加到具有来自 int 变量的自定义位置的 Java 数组列表中吗?

java - ArrayList 的自定义方法

java - 变量可能还没有初始化?

java - Android:计算并输出到textview

java - 用户注册时如何发送特定电子邮件 ID 的自动回复?

java - 执行者服务中的异常处理