将CSV文件读入二维数组

时间:2018-08-05 04:59:23

标签: java arrays csv parsing

我已经尝试了几天以学习如何创建此代码。这是一个家庭作业的例子。 Java初学者最终项目。我要扯掉我的头发,如果可以引导我一点,我将不胜感激。我似乎无法弄清楚如何将csv文件解析为适当的2d数组。分隔符是“,”。我需要处理一列数据(例如年份),但是忽略第一行(0,0),(0,1),(0,2),因为它仅带有我相信的标签。我很迷路。我已经打印出第一列的内容,但是如何忽略(0,0)处的标签,以及如何存储此信息以便可以在方法中进行操作?除了如何正确读取值然后能够操纵它们之外,我在大多数任务上都不需要帮助。谢谢。

    import java.util.*;
    import java.io.*;

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

       try {
         Scanner input = new Scanner(file);
         while (input.hasNext()) {
            String data =  input.nextLine();
            String[] values = data.split(",");
            System.out.println(values[0]);
         }

       }catch (Exception e) {
            System.out.printf("Error");
       }
    }
}

这里是CSV文件的图像。我无法上传。这就是它在google文档中的外观,但是如果我在atom中打开它,则它只是一个带有逗号和值的文件(不在单元格中)。 CSV screenshot

1 个答案:

答案 0 :(得分:0)

您可以使用apache commons-csv读取和解析scv文件。这是使用该库读取列的示例:

Reader in = new FileReader("path/to/file.csv");
Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in);
for (CSVRecord record : records) {
    String lastName = record.get("Last Name"); // or you can pass the index of column
    String firstName = record.get("First Name");
}