CSV 文件生成工具
1、CSV 文件
“csv是逗号分隔值文件格式,可以用电脑自带的记事本或excel打开,csv其文件以纯文本形式存储表格数据,纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。”
nodepad+
excel
2、CSV 生成工具类
CSVUtils
packagecom.lolo;importjava.io.*;importjava.nio.charset.StandardCharsets;importjava.util.List;publicclassCSVUtils{publicstaticFilecreateCSVFile(List<Object>head,List<List<Object>>dataList,StringoutPutPath,StringfileName){FilecsvFile=null;BufferedWritercsvWriter=null;try{csvFile=newFile(outPutPath+File.separator+fileName+".csv");Fileparent=csvFile.getParentFile();if(parent!=null&&!parent.exists()){parent.mkdirs();}csvFile.createNewFile();csvWriter=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(csvFile),StandardCharsets.UTF_8),1024);//写入文件头部writeRow(head,csvWriter);//写入文件内容for(List<Object>row:dataList){writeRow(row,csvWriter);}}catch(Exceptione){e.printStackTrace();}finally{try{csvWriter.close();}catch(IOExceptione){e.printStackTrace();}}returncsvFile;}privatestaticvoidwriteRow(List<Object>row,BufferedWritercsvWriter)throwsIOException{for(Objectdata:row){// StringBuffer sb = new StringBuffer();// String rowStr = sb.append("\"").append(data).append("\",").toString();StringrowStr="\""+((data==null||"".equals(data))?"-":data)+"\t"+"\",";csvWriter.write(rowStr);}csvWriter.newLine();}}Test.java
packagecom.lolo;importjava.io.File;importjava.util.ArrayList;importjava.util.List;publicclassTest{publicstaticvoidmain(String[]args){List<Object>exportData=newArrayList<Object>();exportData.add("第一列");exportData.add("第二列");exportData.add("第三列");List<List<Object>>datalist=newArrayList<List<Object>>();List<Object>data=newArrayList<Object>();data.add("111");data.add("222");data.add("333");List<Object>data1=newArrayList<Object>();data1.add("444");data1.add("555");data1.add("\t2020-09-16 01:15:16\t");datalist.add(data);datalist.add(data1);Stringpath="d:/data/exportCsv/";StringfileName="CSV 文件导出22222";Filefile=CSVUtils.createCSVFile(exportData,datalist,path,fileName);StringfileName2=file.getName();System.out.println("文件名称:"+fileName2);}}