最近有个项目要将数据库中查出来的数据导出到CSV文件,晚上抽时间研究了下用javacsv来实现,在这里将简单的例子共享给大家,其实CSV就是COMMA SEPARATED VALUE的缩写,javacsv是国外开发的一个比较好的操作csv文件的API,这里简单讲一下用法。
当然你还可以用supecsv 或者 opencsv啦。
先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中。
官方下载地址:
http://sourceforge.net/project/showfiles.php?group_id=33066
API地址:
http://javacsv.sourceforge.net/
简单的操作代码:
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
public class DB2ExportCsv
{
/**
* 读取CSV文件
*/
public void readCsv(){
try {
ArrayList<String[]> csvList = new ArrayList<String[]>(); //用来保存数据
String csvFilePath = "D:/log/Alarm20101125.csv";
CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("SJIS")); //一般用这编码读就可以了
reader.readHeaders(); // 跳过表头 如果需要表头的话,不要写这句。
while(reader.readRecord()){ //逐行读入除表头的数据
csvList.add(reader.getValues());
}
reader.close();
for(int row=0;row<csvList.size();row++){
String cell = csvList.get(row)[0]; //取得第row行第0列的数据
System.out.println(cell);
}
} catch (Exception ex) {
System.out.println(ex);
}
}
/**
* 写入CSV文件
*/
public static void WriteCsv(){
try {
String csvFilePath = "D:/log/Alarm20101125.csv";
CsvWriter wr =new CsvWriter(csvFilePath,',',Charset.forName("SJIS"));
String[] contents = {"告警信息","非法操作","没有权限","操作失败"};
wr.writeRecord(contents);
wr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
想了解更多的函数请查看javacsv2.0/doc/index.html说明。我觉得javacsv2.0/src/AllTests.java看看也很有用。大家可以去试试