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的話數據可能不會完全寫入
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章