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的話數據可能不會完全寫入