读取CSV文件并使用Java组织数据

时间:2014-04-14 00:18:42

标签: java csv

我想知道有人可以帮助我吗?

我正在尝试编写一个从一个名为matches.csv的csv文件中读取的java程序。 单场足球比赛可以以胜利或平局结束:在第一种情况下,获胜者队获得3分而输家没有,在第二种情况下,两队中的每一队获得1分。

在文件中,它包含以下数据。

17/08/2013 Arsenal Aston Villa 1 3
24/08/2013 Aston Villa Liverpool 0 1

这意味着在2013年8月17日的比赛中,阿森纳打进1球,阿斯顿维拉3球进球:阿森纳得到0分,阿斯顿维拉3分。

如何构建输出以使其读取

Position Team Played Points
1 Aston Villa 2 3
2 Liverpool 1 3
3 Arsenal 1 0 

这是我目前的尝试。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Teams
{

    public static void main(String[] args)
    {
        String fileName = "matches.csv";
        File file = new File(fileName);

        try
        {
            Scanner inputStream = new Scanner(file);
            while (inputStream.hasNext())
            {
                String data = inputStream.next();
                System.out.println(data);
            }
        }  
        catch(FileNotFoundException e)
        {
            e.printStackTrace();
        }

   }

}

1 个答案:

答案 0 :(得分:1)

首先,您的输入必须是可解析的CSV。所以,请使用逗号。

假设文件有逗号,那就像

dateddmmyyyy,team1name,team2name,team1score,team2score
17/08/2013,Arsenal,Aston Villa,1,3
24/08/2013,Aston Villa,Liverpool,0,1

然后您可以使用此处粘贴的文件。而不是你的System.out.println,使用像

这样的东西
parseLine(data);

ParseLine会读取该行并将其分成几部分。我建议你使用split(“,”)函数来获取你想要的部分,然后通过索引引用它们。