JavaのCSVの読み取りと書き込み

csvファイルは比較的一般的なテーブルファイルです。通常、使用するCSVは,数値で区切られます。CSVの各グリッドのデータにキャリッジリターンがない場合は、行で直接読み取ってからカンマで区切ることができます。ただし、各グリッドのデータにキャリッジリターンが含まれている可能性がある場合は、行ごとに読み取ることができません。より便利な方法は、既製のツールを使用することです。

依存コンポーネント

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>4.1</version>
</dependency>

JavaはCSVを1行ずつ読み取ります

簡単な例

 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を1行で書き込む

 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