JavaCSV文件讀取詳解

一、JavaCSV是什麼

JavaCSV是一個Java編程語言的程序庫,提供了一種簡單、快速、可靠的方式讀取和寫入CSV文件。CSV是一種通用的文件格式,用於在不同的應用程序之間傳遞數據。JavaCSV支持自定義分隔符、文本引用符等,並提供了各種API,以滿足各種讀取和寫入需求。

JavaCSV的特點包括:輕量級、穩定性高、容錯性強、易於使用。開發人員只需要簡單的配置即可快速開始使用JavaCSV進行CSV文件讀取和寫入操作。

二、JavaCSV文件的讀取

1. 環境準備

JavaCSV的讀取需要先下載jar包並導入項目,例如在maven項目中可以在pom.xml文件中添加以下依賴:

    <dependency>
        <groupId>com.googlecode.jcsv</groupId>
        <artifactId>jcsv</artifactId>
        <version>1.4</version>
    </dependency>

2. CSV文件格式

CSV文件格式以逗號分隔字段,在讀取前要先確認好文件格式。JavaCSV支持讀取自定義分隔符、自定義文本引號的CSV文件。例如下面是一個以逗號分隔的CSV文件:

    name,gender,age
    Tom,male,20
    Lily,female,18
    Mike,male,22

3. 創建CSVReader對象

在讀取CSV文件前,需要創建CSVReader對象,CSVReader對象是JavaCSV文件讀取的核心類,它負責將CSV文件中的內容讀取到內存中,提供了各種讀取CSV文件的方法。

例如下面的代碼就是創建一個CSVReader對象:

    CSVReader<Person> csvReader = new CSVReaderBuilder<Person>(new FileReader("person.csv"))
            .strategy(new CsvToBeanStrategyBuilder<Person>().withType(Person.class).build())
            .build();

4. CSV文件讀取

在創建好CSVReader對象後,接下來就可以開始讀取CSV文件了。JavaCSV提供了多種讀取CSV文件的方法,例如讀取整個CSV文件,讀取CSV文件的指定字段,按行讀取CSV文件等等。以下是一個按行讀取CSV文件的示例代碼:

    String[] line;
    while ((line = csvReader.readNext()) != null) {
        System.out.println("Name: " + line[0] + ", Gender: " + line[1] + ", Age: " + line[2]);
    }

上述代碼中,readNext()方法會讀取CSV文件的下一行,返回一個字符串數組形式的行數據。將行數據解析後可以得到CSV文件中的各個字段。

三、JavaCSV文件的寫入

1. 環境準備

JavaCSV的文件寫入也需要先下載jar包並導入項目,同樣可以在pom.xml文件中添加以下依賴:

    <dependency>
        <groupId>com.googlecode.jcsv</groupId>
        <artifactId>jcsv</artifactId>
        <version>1.4</version>
    </dependency>

2. CSV文件的寫入

在寫入CSV文件前,需要創建CSVWriter對象,CSVWriter對象是JavaCSV文件寫入的核心類,它負責將一個Java對象寫入到CSV文件中。

例如下面的代碼就是創建一個CSVWriter對象:

    CSVWriter<Person> csvWriter = new CSVWriterBuilder<Person>(new FileWriter("person.csv"))
            .strategy(new BeanToCsvStrategyBuilder<Person>().build())
            .build();

上述代碼中,CSVWriter負責將Person對象寫入到person.csv文件中,使用BeanToCsvStrategyBuilder指定寫入CSV文件的策略。

3. Java對象的寫入

在創建好CSVWriter對象後,接下來就可以開始將Java對象寫入CSV文件了。JavaCSV提供了兩種寫入Java對象的方式:一種是使用List,將多個Java對象一次性寫入到CSV文件中;另一種是使用Java2CSVConverter,逐個將Java對象寫入到CSV文件中。

這是一個將多個Java對象一次性寫入CSV文件的示例代碼:

    List<Person> persons = new ArrayList<>();
    persons.add(new Person("Tom", "male", 20));
    persons.add(new Person("Lily", "female", 18));
    persons.add(new Person("Mike", "male", 22));
    
    csvWriter.writeAll(persons);

上述代碼中,createCsvWriter()方法返回一個CSVWriter實例,writeAll()方法用於將List中的全部Java對象寫入到CSV文件中。

四、JavaCSV的其他功能

1. 支持自定義分隔符

JavaCSV默認使用逗號作為CSV文件的字段分隔符,但是開發人員可以根據具體需求,自定義分隔符。例如下面的代碼將分隔符設置為豎線“|”:

    CSVParser parser = new CSVParserBuilder().withSeparator('|').build();
    CSVReader<Person> csvReader = new CSVReaderBuilder<Person>(new FileReader("person.csv"))
            .withParser(parser)
            .strategy(new CsvToBeanStrategyBuilder<Person>().withType(Person.class).build())
            .build();

2. 支持自定義文本引用符

當CSV文件中存在文本字段包含分隔符時,需要將文本引用起來,以避免分隔符被誤認為是字段分隔符。JavaCSV默認使用雙引號作為文本引用符,但開發人員也可以根據實際需求自定義文本引用符。以下是一個自定義文本引用符的示例代碼:

    CSVParser parser = new CSVParserBuilder().withQuoteChar('\'').build();
    CSVReader<Person> csvReader = new CSVReaderBuilder<Person>(new FileReader("person.csv"))
            .withParser(parser)
            .strategy(new CsvToBeanStrategyBuilder<Person>().withType(Person.class).build())
            .build();

3. 支持自定義字符集

JavaCSV默認使用UTF-8編碼讀取和寫入CSV文件,但開發人員也可以根據具體需求,自定義CSV文件的字符集。以下是一個自定義字符集的示例代碼:

    CSVReader<Person> csvReader = new CSVReaderBuilder<Person>(new InputStreamReader(new FileInputStream(file), "GBK"))
            .build();

四、小結

JavaCSV是一個穩定、簡單易用的Java編程庫,提供了豐富的API,支持自定義分隔符、文本引用符、字符集等,滿足各種CSV文件讀取和寫入的需求。通過本篇文章的介紹,讀者應該對JavaCSV文件讀取的基本原理及操作有了初步的了解。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/185725.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 21:06
下一篇 2024-11-26 21:07

相關推薦

  • vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常問題的解決

    本文旨在解決vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常的問題,提供完整的代碼示例供參考。 一、分析問題 首先,需了解vue中下載文件的情況。一般情況下,我們…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 為什麼用cmd運行Java時需要在文件內打開cmd為中心

    在Java開發中,我們經常會使用cmd在命令行窗口運行程序。然而,有時候我們會發現,在運行Java程序時,需要在文件內打開cmd為中心,這讓很多開發者感到疑惑,那麼,為什麼會出現這…

    編程 2025-04-29
  • Python將矩陣存為CSV文件

    CSV文件是一種通用的文件格式,在統計學和計算機科學中非常常見,一些數據分析工具如Microsoft Excel,Google Sheets等都支持讀取CSV文件。Python內置…

    編程 2025-04-29
  • Python zipfile解壓文件亂碼處理

    本文主要介紹如何在Python中使用zipfile進行文件解壓的處理,同時詳細討論在解壓文件時可能出現的亂碼問題的各種解決辦法。 一、zipfile解壓文件亂碼問題的根本原因 在P…

    編程 2025-04-29
  • Python如何導入py文件

    Python是一種開源的高級編程語言,因其易學易用和強大的生態系統而備受青睞。Python的import語句可以幫助用戶將一個模塊中的代碼導入到另一個模塊中,從而實現代碼的重用。本…

    編程 2025-04-29
  • Python合併多個相同表頭文件

    對於需要合併多個相同表頭文件的情況,我們可以使用Python來實現快速的合併。 一、讀取CSV文件 使用Python中的csv庫讀取CSV文件。 import csv with o…

    編程 2025-04-29
  • Python寫文件a

    Python語言是一種功能強大、易於學習、通用並且高級編程語言,它具有許多優點,其中之一就是能夠輕鬆地進行文件操作。文件操作在各種編程中都佔有重要的位置,Python作為開發人員常…

    編程 2025-04-29

發表回復

登錄後才能評論