【问题标题】:Skip first line while reading CSVfile in Java在 Java 中读取 CSV 文件时跳过第一行
【发布时间】:2026-02-10 16:30:01
【问题描述】:

读取 CSV 文件时,我需要忽略第一行。第一行有我不需要阅读的 CSV 的日期和标题。

我只能从第二行开始阅读。谁能帮帮我?

String csvFilename = "C:\\Data\\csv_files\\REPORT.csv";
String filterCSV = "C:\\Data\\csv_files\\Output.csv";
CSVWriter write = new CSVWriter(new FileWriter(filterCSV));
CSVReader csvR = new CSVReader(new FileReader(csvFilename)); ---- 
List<CSVData> list = csv.parse(col, csvR);

for (Object object : list) {
    ------
}

【问题讨论】:

    标签: java list file parsing


    【解决方案1】:

    很简单:

     List<CSVData> list = csv.parse(col, csvR);
     list.remove(0);
    

    【讨论】:

      【解决方案2】:

      如果你没有自己编写 CSVReader 类,那么这个构造函数会跳过文件的第一行:

      CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1);
      

      【讨论】:

      • 我会尝试这些选项并让您知道结果。感谢您的帮助
      • CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1); - 这按预期工作。你能解释一下'\''是什么意思吗? ==================================================== =============== 我也尝试过使用list.remove(0)。但它给出了空的 csv 作为输出。 for (Object object : list) { CSVData csvdataBean = (CSVData) object; System.out.println("内部列表对象" + csvdataBean.getTransferDate()); =----- 当我使用 list.remove(0) 时它返回空值 } 谢谢
      【解决方案3】:

      在使用 BufferedReader 在 while 循环中读取整个数据之前,请使用 br.readLine(),然后 csv 文件 的第一行将被删除,然后使用 readLine() 函数读取剩余内容。

          BufferedReader br = new BufferedReader(new FileReader("file.csv"));
          String line = " ";
          br.readLine();
          while((line=br.readLine())!=null)
          {
              System.out.println(line);
          }
      

      【讨论】:

        【解决方案4】:

        你也可以使用CSVParser.java中的方法

        BufferedReader br = new BufferedReader(new FileReader("file.csv"));
        CSVParser csvParser = new CSVParser(reader, 
        CSVFormat.DEFAULT.withHeader("firstColHeader","secondColHeader").withFirstRecordAsHeader().withTrim());
        

        【讨论】:

          【解决方案5】:

          首先,您必须像 ArrayList 这样添加到 List,然后像这样删除 index[0]

          list.remove(0);
          

          【讨论】:

          • 欢迎来到 *!这个答案只是重复Pete B.上面的答案所说的相同。