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