1      基本介绍
可以说CSV格式的文件经常碰到,何为CSV格式,CVS全称comma-separated values,就是典型的用逗号隔开的文件,比如下面这种文件格式
Name,company
zhangsan,ibm
lisi,oracle
这种就是典型的CSV格式文件。不过也可以扩展到其它符号隔开的字符,比如
Name#company
Zhangsan#ibm
Lisi#oracle
这种也算CSV格式
Java开源框架CVSReader提供了一个轻量级、简单方便的统一操作接口可用,下面具体讲解如何操作CVS格式
2      安装和使用
2.1下载
目前CSV reader的最新发布版本是1.8。我们可以从
http://opencsv.sourceforge.net/
上面下载到最新的csvreader包。
2.2安装
直接把jar包分别存放到开发工程的类路径下面即可使用。
3      读取CSV格式文件
3.1基本简介
首先,读取CSV格式的文件需要创建一个CSVReader,如下
CsvReader reader = new CsvReader(Reader r,  char c);
其中第一个参数为读取文件,第二个参数为分割符,比如“,”,或者“#”
另外,也有其它几个参数,可以查阅API,比如
CsvReader reader = new CsvReader(InputStream r,  char c, Charset charset);等等
其次,一般需要读取头信息,如下:
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("");
             }
3.2综合例子
在C盘下创建一个测试文件test.cvs,内容如下:
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格式文件也比较简单,写每一列只要直接调用
csvWriter.write()即可
另外,写完每行结束后,都要调用 csvWriter.endRecord();
表示结束一行
文件写完毕后,要记得刷新一下并关掉,如下:
       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盘下面创建了一个文件
test.text
内容如下:
name#company
11#12
21#22
	posted on 2008-10-31 14:42 
jspark 阅读(11833) 
评论(3)  编辑  收藏