以前就一直很想搞懂一個問題就是java如何讀取和寫入csv文件,現在要花時間總結一波。
主要使用的javaCSV.jar
javaCSV API:http://javacsv.sourceforge.net/
jar包下載地址:
http://repo.boundlessgeo.com/main/net/sourceforge/javacsv/javacsv/2.1/javacsv-2.1.jar
直接上代碼吧。
建工程時記得把javacsv的包添加到build path.
工程目錄為:
test.csv是測試read的,testWrite.csv是程序執行完生成的。
代碼為:
package com.ilovewl;
import java.io.IOException;
import java.nio.charset.Charset;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
public class TestCsv {
public static void read(){
String filePath = "test.csv";
try {
// 創建CSV讀對象
CsvReader csvReader = new CsvReader(filePath);
// 讀表頭
csvReader.readHeaders();
while (csvReader.readRecord()){
// 讀一整行,默認是以逗號分離的
System.out.println(csvReader.getRawRecord());
// 讀這行的某一列
System.out.println(csvReader.get("mobile"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void write(){
String filePath = "testWrite.csv";
try {
// 創建CSV寫對象
CsvWriter csvWriter = new CsvWriter(filePath,',', Charset.forName("GBK"));
//CsvWriter csvWriter = new CsvWriter(filePath);
// 寫表頭
String[] headers = {"姓名","年齡","性別"};
String[] content = {"面包君","18","男"};
csvWriter.writeRecord(headers);
csvWriter.writeRecord(content);
csvWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String a[]) {
read();
write();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
結果示意圖:
總的來說,使用javacsv的API操作起來還是挺簡單的,這里只是實現了很簡單的功能,如果想深入學習的話還是需要去官方的API看看更多的功能。
demo代碼:https://download.csdn.net/download/lcr_happy/10595672