java - 在JAVA中读取和打印CSV文件

标签 java csv java.util.scanner

因此,任务是读取包含姓名、时间和原籍国等项目的 CSV 文件,然后将它们打印到控制台。我已经弄清楚如何循环它,但在第一行之后,对于接下来的一百个左右的输出,我得到的所有内容都是空,这些输出应该包含单独的名称时间等。这就是我所拥有的。

public class CSVReader {

    public static void main(String[] args) throws IOException{
        // TODO Auto-generated method stub

        Scanner Scan = new Scanner(new File("./src/marathon.csv"));
        Scanner timeScan = null;

        int index = 0;

        List<Racer> racerList = new ArrayList<>();

        while(Scan.hasNextLine()){
            timeScan = new Scanner(Scan.nextLine());
            timeScan.useDelimiter(",");
            Racer racer = new Racer();

            while(timeScan.hasNext()){

                String data = timeScan.next();
                if(index==0)
                    racer.setFirstName(data);
                else if(index==1)
                    racer.setLastName(data);
                else if(index==2)
                    racer.setSexAge(data);
                else if(index==3)
                    racer.setCountry(data);
                else if(index==4)
                    racer.setPlace(data);
                else if(index==5)
                    racer.setGunTime(data);
                else if(index==6)
                    racer.setNetTime(data);
                else if(index==7)
                    racer.setKm5(data);
                else if(index==8)
                    racer.setKm10(data);
                else if(index==9)
                    racer.setKm15(data);
                else if(index==10)
                    racer.setKm20(data);
                else if(index==11)
                    racer.setKm25(data);
                else if(index==12)
                    racer.setKm30(data);
                else if(index==13)
                    racer.setKm35(data);
                else if(index==14)
                    racer.setKm40(data);
                else if(index==15){
                    racer.setMinutesPerMile(data);
                }
                index++;
            }
            racerList.add(racer);
        }
        System.out.println(racerList);
    }
}

最佳答案

您需要在每行之后将 index 重置为 0。

关于java - 在JAVA中读取和打印CSV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27394041/

相关文章:

java - 允许更引人注目的图形界面的编程语言?

java - Android App Widget 广播不起作用

java - 为 JSON 响应中的字段选择数据类型

java - 空 Java 扫描仪

java - JAR 文件在 crontab 执行时未从 Scanner(System.in) 读取输入

java - 使用多个事务管理器时没有 Hibernate session 绑定(bind)到线程

python - CSVkit : use "in2csv" in python code

python - 引发 FileNotFoundError

python - 使用表单上传csv文件django

java - 在 try-catch block 中捕获 InputMidmatchException 时无限循环