Java读写CSV

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的话数据可能不会完全写入

猜你喜欢

转载自blog.csdn.net/Fei20140908/article/details/95940869