java操作操作csv文件(读、写)文件(读、写)
在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel
一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供java csv文件来帮忙解析csv文
件。
CSV是Comma Separated Values(逗号分隔值)的英文缩写,通常都是纯文本文件。首先先来了解csv文件的基本格
式:
年
制造商
型号
说明
价值
1997
Ford
E350
ac, abs, moon
3000.00
1999
Chevy
Venture “Extended Edition”
?
4900.00
1999
Chevy
Venture “Extended Edition, Very Large”
?
5000.00
1996
Jeep
Grand Cherokee
MUST SELL!
air, moon roof, loaded
4799.00
上面表格内容若以CSV格式表示会像下列:
年,制造商,型号,说明,价值
1997,Ford,E350,”ac, abs, moon”,3000.00
1999,Chevy,”Venture “”Extended Edition”“”,”“,4900.00
1999,Chevy,”Venture “”Extended Edition, Very Large”“”,”“,5000.00
1996,Jeep,Grand Cherokee,”MUST SELL!air, moon roof, loaded”,4799.00
java如何操作读写csv呢?可以使用opencsv、javacsv等,本文主要介绍javacsv操作csv文件。
import com.csvreader.CsvReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
public class CsvUtil {
//读取csv文件
public List<String[]> readCsv(String filePath) throws Exception {
List<String[]> csvList = new ArrayList<String[]>();
if (isCsv(filePath)) {
CsvReader reader = new CsvReader(filePath, ',', Charset.forName("GBK"));
reader.readHeaders(); // 跳过表头 如果需要表头的话,不要写这句。
while (reader.readRecord()) { //逐行读入除表头的数据
csvList.add(reader.getValues());
}
reader.close();
} else {
System.out.println("此文件不是CSV文件!");
}
return csvList;
}
//判断是否是csv文件
private boolean isCsv(String fileName) {
return fileName.matches("^.+\.(?i)(csv)$");
}
//方法测试
public static void main(String[] args) throws Exception {
String filepath = "C:/群组.csv";
评论0