【问题标题】:Read Specific line using SuperCSV使用 SuperCSV 读取特定行
【发布时间】:2012-02-11 11:46:56
【问题描述】:

是否可以使用 SuperCsv 读取特定行?

假设一个 .csv 文件包含 100 行,我想读取第 11 行。

【问题讨论】:

    标签: java csv supercsv


    【解决方案1】:

    CSV 文件通常包含可变长度的记录,这意味着不可能“跳转”到指定的记录。唯一的解决方案是从文件开头顺序读取 CSV 记录,同时保持计数,直到达到所需的记录。

    我没有在 SuperCsv 中找到任何特殊的 API 来进行这种跳行,所以我想你必须手动调用 CsvListReader#read() 方法 11 次才能得到你想要的行。

    我不知道其他 CSV 阅读库是否会有“跳转到行”功能,即使有,也不太可能比手动跳到所需的行更好,原因给出在第一段。

    【讨论】:

      【解决方案2】:

      这是一个您可以适应的简单解决方案:

      listReader = new CsvListReader(new InputStreamReader(new FileInputStream(CSVFILE, CHARSET), CsvPreference.TAB_PREFERENCE);
      listReader.getHeader(false);
      while ((listReader.read(processors)) != null) {
          if (listReader.getLineNumber() == 1) {
              System.out.println("Do whaever you need.");
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-15
        • 2012-12-22
        相关资源
        最近更新 更多