【问题标题】:Read CSV File and display values when there are empty rows in between using java读取 CSV 文件并在使用 java 之间有空行时显示值
【发布时间】:2015-03-27 07:32:24
【问题描述】:

我可以读取 csv 文件,但是当该行为空白或为空时,它会显示 Arrayindexoutofboundexception。当行为空时如何继续读取文件。

File file = new File("D:\\ms.csv");
        List<String> lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);

        for (String line : lines) {
            String[] array = line.split(",");
            System.out.println(array[0]+","+array[1]);
        }

我的 csv 如下所示,中间有空行

sid,    name,   image

PC-GHF - 10677, Wine,   /g/h/ghf_10677.jpg






PC-GHF - 10482, Green,  /g/h/ghf_10482.jpg




PC-GHF - 10483, Shaded Cream,   /g/h/ghf_10483..jpg




PC-GHF- 10484,  White,  /g/h/ghf_10484.jpg

【问题讨论】:

    标签: java csv


    【解决方案1】:

    在显示之前检查长度即可。

     for (String line : lines) {
            String[] array = line.split(",");
            if (array.length == 0) 
                continue;
            System.out.println(array[0]+","+array[1]);
        }
    

       for (String line : lines) {
            if (line.lenght == 0) 
                continue;
            String[] array = line.split(",");
            System.out.println(array[0]+","+array[1]);
        }
    

    【讨论】:

    • 如果 column3 中有一个空字段,则会给出异常
    • 然后将检查改为array.length &lt; 3
    【解决方案2】:

    您可以使用continue 语句跳过特定行:

    for (String line : lines) {
        if ("".equals(line)) {
            continue;
        }
        // ...
    }
    

    (如果您的空行包含空格,您可能需要调整 if 条件)

    【讨论】:

      猜你喜欢
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多