Java生成csv文件代码

来源:互联网 发布:unity3d 布料插件 编辑:程序博客网 时间:2024/05/22 00:05

Java生成csv文件代码

Csv文件支持excel文件格式打开,但是却不需要poi的支持,文件生成更加简单,方便,可功能却不如poi那样的强大

下面是生产CSV文件的代码

主要分成两个两个类

1.类是常量抽取形成类,便于改动不影响工具类

2.生成csv文件工具类

*会使用到joda-timejar,下载解压就好

常量类FileConstantUtils

package com.boss.util;

 

import java.io.File;

import java.util.Arrays;

import java.util.List;

 

/**

 * CSV常量工具类

 */

 

public class FileConstantUtils {

    public final static List<Object>   MEASURE_HEAD_LIST   = Arrays.asList(

            "客户ID",

            "产品ID",

            "产品类型"

    );

 

    // 导出文件路径

    public final static String  DOWNLOAD_FILE_PATH  = "D:" + File.separator + "csv" + File.separator + "download" + File.separator;

    public final static String FILE_NAME = "存疑报表";

}

工具类CreateCSVUtils

package com.kscloud.boss.charge.util;

 

import org.joda.time.DateTime;

 

import java.io.*;

import java.util.List;

import java.util.Locale;

 

public class CreateCSVUtils {

    /**

     * 创建CSV文件类型

     *

     * @param dataLists

     * @return

     */

    public static File createCSVFile( List<Object> dataLists, List<Object>   headList) throws IOException {

        File csvFile = null;

        BufferedWriter csvWrite = null;

        DateTime dateTime=new DateTime();

        String stringDate = dateTime.toString("yyyyMMddHHmmss", Locale.CHINESE);

        try {

            //定义文件类型

            csvFile = new File(FileConstantUtils.DOWNLOAD_FILE_PATH + File.separator + FileConstantUtils.FILE_NAME +stringDate+ ".csv");

            //去文件目录

            File parent = csvFile.getParentFile();

            if (parent.exists()) {

                parent.mkdirs();

            }

            //创建文件

            csvFile.createNewFile();

            csvWrite = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "GB2312"), 1024);

            //写入表头

            write(headList, csvWrite);

            //写入数据

            for ( Object dataList:dataLists){

            write((List<Object>)dataList, csvWrite);

 

            }

            csvWrite.flush();

        } catch (IOException e) {

            throw  new IOException("文件生成失败");

 

        } finally {

            try {

                csvWrite.close();

            } catch (IOException e) {

                throw  new IOException("关闭文件流失败");

            }

        }

        return csvFile;

    }

 

    /**

     * 将数据按行写入数据

     *

     * @param dataList

     * @param csvWreite

     * @throws IOException

     */

 

    private static void write(List<Object> dataList,BufferedWriter csvWreite) throws IOException {

        for (Object data: dataList) {

            StringBuffer buffer=new StringBuffer();

            String rowStr=buffer.append("\"").append(data).append("\",").toString();

            csvWreite.write(rowStr);

//            csvWreite.newLine();

        }

        csvWreite.newLine();

 

    }

}

 

原创粉丝点击