/**
* 创建csv文件
* @param titles 标题
* @param contents 内容
* @param destPath 文件写出路径
* @param fileName 文件名称
*/
private void createCsvFile(String[] titles, List<String[]> contents,
String destPath, String fileName){
if(destPath==null||destPath.trim().length()==0){
logger.error("文件输出路径为空");
return;
}
if(fileName==null||fileName.trim().length()==0){
logger.error("文件输出名称为空");
return;
}
if(titles==null||titles.length==0){
logger.error("文件标题为空");
return;
}
if(contents!=null&&contents.size()>0){
String[] lineContent = contents.get(0);
if(lineContent.length!=titles.length){
logger.error("文件标题和数据长度不一致,请检查");
return;
}
}
if(!destPath.endsWith(File.separator)){
destPath += File.separator;
}
String filePath = destPath + fileName;
File file = new File(filePath);
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file));
StringBuffer fileBuffer = new StringBuffer();
//标题
StringBuffer titleBuffer = new StringBuffer();
for(int i=0;i<titles.length;i++){
titleBuffer.append("\"");
titleBuffer.append(titles[i]);
titleBuffer.append("\"");
if(i<titles.length-1){
titleBuffer.append(",");
}
}
fileBuffer.append(titleBuffer.toString());
//内容
if(contents!=null&&contents.size()>0){
StringBuffer contentBuffer = new StringBuffer();
contentBuffer.append("\r\n");
for(int i=0;i<contents.size();i++){
String[] lineContent = contents.get(i);
for(int j=0;j<lineContent.length;j++){
contentBuffer.append("\"");
contentBuffer.append(lineContent[j]);
contentBuffer.append("\"");
if(j<lineContent.length-1){
contentBuffer.append(",");
}
}
if(i<contents.size()-1){
contentBuffer.append("\r\n");
}
}
fileBuffer.append(contentBuffer.toString());
}
bw.write(fileBuffer.toString());
bw.flush();
logger.info(filePath+"文件写出正常");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}