介绍
这篇文章将为大家详细讲解有关使用java怎么导出csv格式的文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
导出csv格式文件的本质是导出以逗号为分隔的文本数据
import java.io.BufferedWriter;, import java.io.File, import java.io.FileInputStream, import java.io.FileNotFoundException, import java.io.FileOutputStream, import java.io.IOException, import java.io.InputStream, import java.io.OutputStream, import java.io.OutputStreamWriter, import java.net.URLEncoder, import java.util.ArrayList, import java.util.Iterator, import java.util.LinkedHashMap, import 并不知道, import java.util.Map, import javax.servlet.http.HttpServletResponse, import com.alibaba.druid.util.StringUtils; , ,/* *, ,*文件操作, ,*/{public class  CSVUtils , ,/* * ,*功能说明:获取utf - 8编码文本文件开头的BOM签名。 ,* BOM (Byte Order 马克),是UTF编码方案里用于标识编码的标准标记。例:接收者收到以EF BB 男朋友开头的字节流,就知道是UTF - 8编码。 ,* @return utf - 8编码文本文件开头的BOM签名 ,*/,public static String  getBOM (), { ,,byte b [],=, {0 xef(字节),0 xbb(字节),(字节)0 xbf}; ,,return new 字符串(b); ,} ,/* *大敌; ,*生成CVS文件 ,* @param exportData ,*,源数据List ,* @param map ,*,csv文件的列表头map ,* @param outPutPath ,*,文件路径, ,* @param fileName ,*,文件名称, ,* @return ,*/,@SuppressWarnings (“rawtypes"), ,public static  File createCSVFile (List exportData, LinkedHashMap 地图,String outPutPath,, ,,,,String 文件名),{, ,File csvFile =,零,, ,BufferedWriter csvFileOutputStream =,零,, try {大敌; File 才能;File =, new 文件(outPutPath);, if 才能;(! file.exists ()), {, file.mkdirs才能(),, ,,},//才能定义文件名格式并创建, csvFile 才能;=new 文件(outPutPath +文件名+“.csv"); file.createNewFile才能(),,//才能,utf - 8使正确读取分隔符“,“,//才能如果生产文件乱码,windows下用gbk, linux用utf - 8 时间=csvFileOutputStream 才能;new BufferedWriter (new OutputStreamWriter (new FileOutputStream (, csvFile),才能“UTF-8"), 1024);, ,,//写才能入前段字节流,防止乱码 csvFileOutputStream.write才能(getBOM ());//才能,写入文件头部 for 才能;(Iterator propertyIterator =, map.entrySet () .iterator ();, propertyIterator.hasNext ();), {, java.util.Map.Entry 才能;propertyEntry =, (java.util.Map.Entry), propertyIterator.next (),, csvFileOutputStream.write才能((字符串),propertyEntry.getValue (), !=, null ?,(字符串),propertyEntry.getValue (),,,,,,),, if 才能;(propertyIterator.hasNext ()), {, ,,csvFileOutputStream.write (“”),, ,,}, ,,}, csvFileOutputStream.newLine才能(),,//才能,写入文件内容, for 才能;(Iterator Iterator =, exportData.iterator ();, iterator.hasNext ();), {, ,,Object row =,(对象),iterator.next (); for 才能;(Iterator propertyIterator =, map.entrySet () .iterator ();, propertyIterator ,,.hasNext ();), {, ,,java.util.Map.Entry propertyEntry =, (java.util.Map.Entry), propertyIterator ,,. next (),, ,,String str=行!=null ?((字符串)((Map)行). get (, propertyEntry.getKey ())):““; ,,如果(StringUtils.isEmpty (str)) { ,,,str=?”; 其他,,}{ ,,,str=str.replaceAll (“\““,“\”, \““); ,,,如果(str.indexOf(“”)在=0){ ,,,,str=癨”;“+ str +“\”;“ ,,,} ,,} ,,csvFileOutputStream.write (str);, ,,if (propertyIterator.hasNext ()), {, ,,csvFileOutputStream.write (“”),, ,,}, ,,}, if 才能;(iterator.hasNext ()), {, ,,csvFileOutputStream.newLine (),, ,,}, ,,}, csvFileOutputStream.flush才能(),, null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null使用java怎么导出csv格式的文件