最近开发一个接口日志,采用CVS方式,对于数据文件采用CVS相比EXCEL能容纳更多数据行,CVS也是方便直接导入导出数据库,CVS数据文件是可以在EXCEL查看,与逗号分割的数据文件,可以直接在记事本打开,更加轻巧。
DEMO代码
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.List;
import com.opencsv.CSVWriter;
public class CsvUtils {
public static void wirteToCsv(File file,List<String[]> list,boolean append) throws Exception {
CSVWriter csvWriter = createCSVWriter(file, append);
csvWriter.writeAll(list);
csvWriter.close();
}
public static void wirteToCsv(File file,String[] line,boolean append) throws Exception {
CSVWriter csvWriter = createCSVWriter(file, append);
csvWriter.writeNext(line);
csvWriter.close();
}
public static void wirteToCsv(String path,String fileName,List<String[]> list,boolean append,boolean createNew) throws Exception {
File file = createFile(path + File.separator + fileName,createNew);
wirteToCsv(file,list,append);
}
public static void wirteToCsv(String path,String fileName,String[] line,boolean append,boolean createNew) throws Exception {
File pathFile = new File(path);
if (!pathFile.exists()) {
pathFile.mkdirs();
}
File file = createFile(path + File.separator + fileName,createNew);
wirteToCsv(file,line,append);
}
public static void wirteToCsv(String path,String fileName,List<String[]> list,boolean append) throws Exception {
File file = createFile(path + File.separator + fileName,false);
wirteToCsv(file,list,append);
}
public static File createFile(String path,boolean createNew) throws Exception{
File file = new File(path);
if (createNew) {
if (!file.exists()) {
file.createNewFile();
}
} else {
if (!file.exists()) {
throw new RuntimeException("文件不存在!");
}
}
return file;
}
public static CSVWriter createCSVWriter(File file,boolean append) throws Exception{
Writer writer = new FileWriter(file,append);
CSVWriter csvWriter = new CSVWriter(writer);
return csvWriter;
}
}