csv文件 是比较通用的表格文件,一般我们用的CSV都是用,
号分隔的,如果CSV里面的每个格子的数据都不带回车,那可以直接按行读取然后用逗号分割,但如果每个格子的数据可能带些回车,那就没法按行读取了,比较方便的方法是采用现成的工具。
依赖组件
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>4.1</version>
</dependency>
Java按行读CSV
简单示例
Reader reader = Files.newBufferedReader(
Paths.get(ClassLoader.getSystemResource("csv/twoColumn.csv").toURI()));
CSVReader csvReader = new CSVReader(reader);
String[] line;
while ((line = csvReader.readNext()) != null) {
/**
*line 中的下标从0开始,表示csv的第1列
*例如:读取第三列的数据
*String str= line[2];
*/
}
reader.close()
csvReader.close()
在创建CSVReader
的时候,还可自定义一个CSVParser
CSVParser parser = new CSVParserBuilder()
.withSeparator(',')//定义分隔符
.withIgnoreQuotations(true)
.build();
CSVReader csvReader = new CSVReaderBuilder(reader)
.withSkipLines(0)//跳过前n行
.withCSVParser(parser)
.build();
Java按行写CSV
List<String[]>stringArray;//假设所有数据都存在这个列表里面
CSVWriter writer = new CSVWriter(new FileWriter(filePath));
for (String[] array : stringArray) {
writer.writeNext(array);
}
writer.close()//这步不可少,不close的话数据可能不会完全写入