CSV文件簡介
逗號分隔型取值格式(英文全稱為Comma Separated Values,簡稱CSV),是一種純文本格式,用來存儲數據。在CSV中,數據的字段由逗號分開,程序通過讀取文件重新創建正確的字段,方法是每次遇到逗號時開始新一段數據。
CSV文件是一個計算機數據文件用于執行審判和真正的組織工具,逗號分隔的清單。常常被用于移動表格數據之間的兩個不同的計算機程序,例如關系數據庫程序和電子表格程序。
本文以下面這個CSV文件為例,向大家簡要介紹Java語言的CSV讀寫操作的一種實現方法。
writers.csv
張藝謀,1951,1114
小沈陽,1981,0507
孫紅雷,1970,0816
閆妮,1971,0310
CSV讀取操作
CSV文件讀取主要用到java.io.BufferedReader類和java.util.StringTokenizer類,BufferedReader用來讀入文件,StringTokenizer用來將一行數據分成多個字段。
下面是用來讀取CSV文件內容的類:
package tip;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class ReadCSV {
public static void main(String[] args) {
try {
File csv = new File("C:\\writers.csv"); // CSV文件
BufferedReader br = new BufferedReader(new FileReader(csv));
// 讀取直到最后一行
String line = "";
while ((line = br.readLine()) != null) {
// 把一行數據分割成多個字段
StringTokenizer st = new StringTokenizer(line, ",");
while (st.hasMoreTokens()) {
// 每一行的多個字段用TAB隔開表示
System.out.print(st.nextToken() + "\t");
}
System.out.println();
}
br.close();
} catch (FileNotFoundException e) {
// 捕獲File對象生成時的異常
e.printStackTrace();
} catch (IOException e) {
// 捕獲BufferedReader對象關閉時的異常
e.printStackTrace();
}
}
}
執行結果如下所示:
CSV寫操作
CSV文件讀取主要用到java.io.BufferedWriter類。
下面是寫CSV文件的類:
package tip;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
public class WriteCSV {
public static void main(String[] args) {
try {
File csv = new File("C:\\writers.csv"); // CSV文件
// 追記模式
BufferedWriter bw = new BufferedWriter(new FileWriter(csv, true));
// 新增一行數據
bw.newLine();
bw.write("三槍拍案驚奇" + "," + "2009" + "," + "1212");
bw.close();
} catch (FileNotFoundException e) {
// 捕獲File對象生成時的異常
e.printStackTrace();
} catch (IOException e) {
// 捕獲BufferedWriter對象關閉時的異常
e.printStackTrace();
}
}
}
執行之后的writers.csv文件如下所示:
張藝謀,1951,1114
小沈陽,1981,0507
孫紅雷,1970,0816
閆妮,1971,0310
三槍拍案驚奇,2009,1212
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/aerchi/archive/2010/03/10/5364056.aspx
小白