如何将CSV中的数据存储到Java中的数组中?

时间:2019-04-01 20:46:29

标签: java arrays csv

我有以下.csv文件:

B00987,58
B00567,43
B00343,59
B00653,25
B00757,31
B00876,40
B00421,62
B00568,78
B00826,79
B00126,93
B00862,62
B00999,12
B00237,68
B00762,85
B00864,49

我需要将所有B00000数字存储在数组中,以备后用。数组应如下所示:

Position 0 | B00987
Position 1 | B00567
Position 2 | B00343
Position 3 | B00653
....
Position 13 | B00762
Position 14 | B00864

文件路径为:

String filepath = "src\\marks.csv";

有人知道如何用Java做到这一点吗?谢谢

2 个答案:

答案 0 :(得分:1)

您可以将Java Streams与Files.lines()方法一起使用:

try (Stream<String> lines = Files.lines(Paths.get("marks.csv"))) {
    String[] result = lines
            .map(line -> line.split(","))
            .map(items -> items[0])
            .toArray(String[]::new);
} catch (IOException e) {
    e.printStackTrace();
}

这会将所有行读取到流中,将每行除以,并仅使用第一个元素。

答案 1 :(得分:0)

您仅以可预测的格式存储第一列,因此您可以在每行中查找,分隔符的第一个匹配项。假设marks.csv是您的JAR资源:

try (BufferedReader reader = new BufferedReader(new InputStreamReader(
        getClass().getResourceAsStream("/marks.csv")))) {
  String[] numbers = reader.lines()
      .map(l -> l.substring(0, l.indexOf(',')))
      .toArray(String[]::new);
}