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 閱讀(11805)
評論(3) 編輯 收藏