<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-16  評論-54  文章-0  trackbacks-0
     

     

    1      基本介紹

    可以說CSV格式的文件經(jīng)常碰到,何為CSV格式,CVS全稱comma-separated values,就是典型的用逗號隔開的文件,比如下面這種文件格式

    Name,company

    zhangsan,ibm

    lisi,oracle

    這種就是典型的CSV格式文件。不過也可以擴展到其它符號隔開的字符,比如

    Name#company

    Zhangsan#ibm

    Lisi#oracle

    這種也算CSV格式

    Java開源框架CVSReader提供了一個輕量級、簡單方便的統(tǒng)一操作接口可用,下面具體講解如何操作CVS格式

    2      安裝和使用

    2.1下載

    目前CSV reader的最新發(fā)布版本是1.8。我們可以從

    http://opencsv.sourceforge.net/

    上面下載到最新的csvreader包。

    2.2安裝

    直接把jar包分別存放到開發(fā)工程的類路徑下面即可使用。

    3      讀取CSV格式文件

    3.1基本簡介

    首先,讀取CSV格式的文件需要創(chuàng)建一個CSVReader,如下

    CsvReader reader = new CsvReader(Reader r,  char c);

    其中第一個參數(shù)為讀取文件,第二個參數(shù)為分割符,比如“,”,或者“#

    另外,也有其它幾個參數(shù),可以查閱API,比如

    CsvReader reader = new CsvReader(InputStream r,  char c, Charset charset);等等

    其次,一般需要讀取頭信息,如下:

    reader.readHeaders();

    String[] headers = reader.getHeaders();

    讀取了后,指針就會移動到下一行,也就是可以開始讀取文件內(nèi)容

    假如,有多行的話,可以用一個循環(huán)套入,例如下面:

                 while (reader.readRecord()) {

                        for (int i = 0; i < headers.length; i++) {

                               String value = reader.get(headers[i]);

                               System.out.print(value+" ");

                        }

                        System.out.println("");

                 }

    3.2綜合例子

    C盤下創(chuàng)建一個測試文件test.cvs,內(nèi)容如下:

    a#b#c

    1#2#3

    4#5#6

    下面是解析代碼:

          public static void main(String[] args) throws Exception {

    CsvReader reader = new CsvReader(new FileReader("c://csv.txt"), '#');

                 reader.readHeaders();

                 String[] headers = reader.getHeaders();

                 while (reader.readRecord()) {

                        for (int i = 0; i < headers.length; i++) {

                               String value = reader.get(headers[i]);

                               System.out.print(value+" ");

                        }

                        System.out.println("");

                 }

          }

    運行以上程序,可以看到輸出

     1 2 3

     4 5 6

    4      CSV格式文件

    CSV格式文件也比較簡單,寫每一列只要直接調(diào)用

    csvWriter.write()即可

    另外,寫完每行結(jié)束后,都要調(diào)用 csvWriter.endRecord();

    表示結(jié)束一行

    文件寫完畢后,要記得刷新一下并關(guān)掉,如下:

           csvWriter.flush();

           csvWriter.close();

    代碼如下:

        publicstaticvoid main(String[] args) throws Exception {

           CsvWriter csvWriter = new CsvWriter(new FileWriter("c://test.text"), '#');

           csvWriter.write("name");

           csvWriter.write("company");

           csvWriter.endRecord();

           csvWriter.write("11");

           csvWriter.write("12");

           csvWriter.endRecord();

           csvWriter.write("21");

           csvWriter.write("22");

           csvWriter.flush();

           csvWriter.close();

       }

    }

    運行以上程序,可以看到C盤下面創(chuàng)建了一個文件

    test.text

    內(nèi)容如下:

    name#company

    11#12

    21#22

    posted on 2008-10-31 14:42 jspark 閱讀(11806) 評論(3)  編輯  收藏

    評論:
    # re: 如何更方便地進行CSV格式文件讀寫 2008-11-01 16:58 | 金山毒霸2008
    好像有一種文件,擴展明就是CSV,一種常見的文件格式。  回復(fù)  更多評論
      
    # re: 如何更方便地進行CSV格式文件讀寫[未登錄] 2008-11-05 17:03 | jinn
    csv不就是一種文本嗎,直接讀文本文件的方式的就行了吧。
    讀:
    List<String> list = org.apache.commons.io.FileUtils.readLines(new File("test.csv"));

    寫:
    List list = new ArrayList();
    list.add("name,company");
    list.add("zhangsan","huipu");
    org.apache.commons.io.FileUtils.writeLines(new File("test.csv"), list);
      回復(fù)  更多評論
      
    # re: 如何更方便地進行CSV格式文件讀寫[未登錄] 2008-11-07 09:06 | jspark
    直接讀取有下面幾個問題:
    1、你直接讀取,還要自己去切割每行?另外,還要考慮空的情況
    2、存在各種分割符

    寫的話也存在同樣的問題,要自己拼符號,多麻煩。  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 人人狠狠综合久久亚洲| 亚洲日本在线电影| 3344在线看片免费| 无码乱人伦一区二区亚洲| 玖玖在线免费视频| 亚洲国产一区国产亚洲| 亚洲黄色片免费看| 亚洲狠狠成人综合网| 在线免费观看a级片| 香蕉视频免费在线播放| 国产成人精品亚洲精品| 成人精品视频99在线观看免费| 国产亚洲人成无码网在线观看| 日本免费A级毛一片| 久久亚洲精精品中文字幕| 亚洲无砖砖区免费| 亚洲日韩乱码中文字幕| 国产成人免费ā片在线观看| 久久国产一片免费观看| 亚洲国产精品国自产拍电影 | 三年片免费观看大全国语| 久久久久久久尹人综合网亚洲| 无码国产精品一区二区免费式芒果 | 亚洲最新视频在线观看| 国产免费女女脚奴视频网| 亚洲熟女综合色一区二区三区| 一本久久综合亚洲鲁鲁五月天| 你好老叔电影观看免费| 亚洲欧洲久久精品| 亚洲?V乱码久久精品蜜桃| 无码日韩精品一区二区三区免费| 亚洲国产日韩在线人成下载 | 亚洲AV永久无码精品成人| 999久久久免费精品国产| 人妻巨大乳hd免费看| 亚洲综合无码一区二区| 免费大片黄手机在线观看| 99精品视频在线视频免费观看 | 久久99免费视频| 亚洲熟妇AV一区二区三区浪潮| 中文字幕亚洲激情|