使用 JavaCSV api 讀取和寫入 csv 文件

今天工做中須要讀取CSV文件,以前對Excel文件操做的比較多,第一次碰到須要操做CSV文件的狀況。html

CSV文件的介紹

剛開始想着本身寫一個工具類,因而上網搜了下CSV,只有詳細瞭解文件結構後,才能寫出正確的程序。java

逗號分隔值(Comma-Separated Values,CSV,有時也稱爲字符分隔值,由於分隔字符也能夠不是逗號),其文件以純文本形式存儲表格數據(數字和文本)。純文本意味着該文件是一個字符序列,不含必須像二進制數字那樣被解讀的數據。CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最多見的是逗號或製表符。一般,全部記錄都有徹底相同的字段序列。一般都是純文本文件。建議使用WORDPAD或是記事本(NOTE)來開啓,再則先另存新檔後用EXCEL開啓,也是方法之一。api

這是一段來自百度百科的介紹,看完這段我以爲我已經足夠了解CSV文件了。我以爲若是存純文本類型的數據,反而用CSV比Excel來得方便。函數

使用JavaCSV api

畢竟第一次用,本身寫確定不夠全面,想找個參考的,因而百度找到了JavaCSV api,看了下用起來足夠方便,由於這個需求比較緊,因此先拿來用,等之後有空閒的時間了,再試着本身寫個玩玩吧。工具

導包

我如今基本上都是Maven構建項目,相信你們也是,就不提供jar包了。.net

<dependency>
      <groupId>net.sourceforge.javacsv</groupId>
      <artifactId>javacsv</artifactId>
      <version>2.0</version>
    </dependency>

寫CSV文件

CsvWriter api手冊code

public static void writer() throws IOException {

        // 第一參數:新生成文件的路徑 第二個參數:分隔符(不懂仔細查看引用百度百科的那段話) 第三個參數:字符集
        CsvWriter csvWriter = new CsvWriter("F:/demo.csv", ',', Charset.forName("UTF-8"));

        // 表頭和內容
        String[]  headers = {"姓名", "年齡", "性別"};
        String[] content = {"張三", "18", "男"};

        // 寫表頭和內容,由於csv文件中區分沒有那麼明確,因此都使用同一函數,寫成功就行
        csvWriter.writeRecord(headers);
        csvWriter.writeRecord(content);

        // 關閉csvWriter
        csvWriter.close();

    }

輸入圖片說明

讀CSV文件

CsvReader api手冊xml

public static void read() throws IOException {

        // 第一參數:讀取文件的路徑 第二個參數:分隔符(不懂仔細查看引用百度百科的那段話) 第三個參數:字符集
        CsvReader csvReader = new CsvReader("F:/demo.csv", ',', Charset.forName("UTF-8"));

        // 若是你的文件沒有表頭,這行不用執行
        // 這行不要是爲了從表頭的下一行讀,也就是過濾表頭
        csvReader.readHeaders();

        // 讀取每行的內容
        while (csvReader.readRecord()) {
            // 獲取內容的兩種方式
            // 1. 經過下標獲取
            System.out.print(csvReader.get(0));

            // 2. 經過表頭的文字獲取
            System.out.println(" " + csvReader.get("年齡"));
        }
    }

輸入圖片說明

其餘

這兩個類中還有不少其餘的方法,若是有須要使用,能夠閱讀相關的api手冊htm

相關文章
相關標籤/搜索