Use*_*321 3 java csv java-8 apache-commons-csv
我使用以下依赖项来读取 csv 文件:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
下面是我编写的用于读取 csv 文件的代码:
Reader reader = Files.newBufferedReader(Paths.get(file.getPath()));
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT);
for(CSVRecord csvRecord: csvParser) {
System.out.println(csvRecord.get(0));
}
Run Code Online (Sandbox Code Playgroud)
我可以通过上述方法读取csv文件中的每一行。但是 csvParser.getRecords(); 返回空。我想要 CSV 文件中的总行数。我怎样才能做到这一点?
仔细阅读getRecords() javadoc(重点是我的):
返回的内容从流中的当前解析位置开始。
你说 :
但是 csvParser.getRecords(); 返回空。我想要 CSV 文件中的总行数。我怎样才能做到这一点?
您必须csvParser.getRecords().size();在迭代记录之前调用。然后迭代它们。
例如 :
List<Records> records = csvParser.getRecords();
int nbRecords = records.size();
for(CSVRecord csvRecord: records) {
System.out.println(csvRecord.get(0));
}
Run Code Online (Sandbox Code Playgroud)