如何在Java中读取CSV文件的标题并将其存入列表?

5

我有一个带有标题的CSV文件,如下所示:

Title,Project ID,summary,priority

1,1,测试摘要,高

现在我想获取传递到CSV文件中的标题列表。

注意:每次传递的标题都会不同。

提前感谢。


一个快速的“Hack”方法是,您可以读取第一行并在逗号上进行字符串分割。实际上,这个解决方案的确切答案在这里:https://dev59.com/H2Af5IYBdhLWcg3wbCN3 - Kenneth Clark
CSV基本上是一个逗号分隔值文件,意味着它是一个普通的文本文件,您可以使用FileReaderBufferedReader简单地读取第一行以获取标题。 - Saravana
5个回答

9
您可以使用CSVReader。
String fileName = "data.csv";
CSVReader reader = new CSVReader(new FileReader(fileName ));
// if the first line is the header
String[] header = reader.readNext();

0
你可以逐行读取csv文件。 在逗号处分割每一行。 分割方法返回数组。 每个数组元素包含从读取的行中获取的值。 假设标题和项目ID字段是整数类型,则将任何2个元素视为整数,第一个作为标题,第二个作为项目ID。 字符串可以视为摘要和优先级。

我需要头文件,而不是数据。 - Tarun Arora

0
你可以使用 Apache Commons 的 org.apache.commons.csv.CSVParser。它有获取标头和内容的方法。

0

Apache commons CSV: 要从csv文件中仅获取标题内容并将其存储在列表中,请使用以下代码获取。

List<Map<String, Integer>> list = new ArrayList<>();
    try (Reader reader = Files.newBufferedReader(Paths.get(CSV_FILE_PATH))) {
        CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT.withHeader());
        Map<String, Integer> header = csvParser.getHeaderMap();
        list.add(header);
        list.forEach(System.out::println);

    }catch (IOException e){
        e.printStackTrace();
    }

0

尝试从CSV文件中仅读取标题

        BufferedReader br = new BufferedReader(new FileReader("myfile.csv"));
        String header = br.readLine();
        if (header != null) {
            String[] columns = header.split(",");
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接