使用commons-csv生成.csv文件

做个代码笔记,方便以后看。

commons-csv-1.1.jar的源码:https://github.com/apache/commons-csv

CsvFileBuilder.java类

package com.huihui.main;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;

public class CsvFileBuilder {

	private static final String[] header = { "id", "name"};	

	private static FileWriter fileWriter = null;
	private static CSVPrinter csvPrinter = null;
	private static CSVFormat csvFormat = CSVFormat.DEFAULT.withRecordSeparator(‘\n‘);  // 每条记录间隔符

	public static void write(Map<String, String> info) {
		File file = new File("test.csv");
		System.out.println(file.getAbsolutePath());
		try {
			if (!file.exists()) {
				fileWriter = new FileWriter("test.csv",true);  // 创建test.csv的字符输出流
				csvPrinter = new CSVPrinter(fileWriter, csvFormat);
				csvPrinter.printRecords(header);  // 生成.csv表的字段名
				System.out.println("执行");
			}else {
				fileWriter = new FileWriter("test.csv",true);  // 创建test.csv的字符输出流
				csvPrinter = new CSVPrinter(fileWriter, csvFormat);
				System.out.println("文件存在");
			}

			Set<String> ids = info.keySet();
			for (String id : ids) {
				List<String> idName = new ArrayList();
				idName.add(id);
				idName.add(info.get(id));
				csvPrinter.printRecord(idName);  // 向.csv文件中添加记录数据
			}
			System.out.println("生成.csv文件");
		}catch(IOException e) {
			e.printStackTrace();
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			try {
				csvPrinter.flush();
				fileWriter.flush();
				fileWriter.close();
				csvPrinter.close();
			}catch (Exception e) {
				e.printStackTrace();
			}
		}

	}
}

测试类:

package com.huihui.main;

import java.util.HashMap;
import java.util.Map;

public class TestCsvFileBuilder {
	public static void main(String[] args) {

		Map<String, String> idName = new HashMap();
		idName.put("1", "Java");
		idName.put("2", "C++");
		idName.put("3", "Python");
		idName.put("4", "Ruby");

		CsvFileBuilder.write(idName);
	}
}

源码+jar包(在源码的lib文件下)下载地址:http://pan.baidu.com/s/1ntBY2ud

时间: 2024-08-28 10:41:14

使用commons-csv生成.csv文件的相关文章

POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280.html . Office2007与Office Open XML 在Office 2007之前,Office一直都是以二进制位的方式存储,但这种格式不易被其它软件拿来使用,在各界的压力下,MicroSoft于2005年发布了基于XML的ooxml开放文档标准.ooxml的xml schema强调减

Java生成CSV文件实例详解

本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputS

记一次java生成csv文件乱码的解决过程 (GB2312编码)

系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多次调用[restful接口],每次[restful接口]会返回一个生成好的csv文件内容.[服务*** server]将每次[restful接口]返回的csv内容保存成一个csv文件.并将生成的多个csv文件打包成一个zip压缩包. [restful接口]:根据一组数据生成csv文件 1. java

php服务器端生成csv文件

/** * 将数组动态输出至 csv 文件[服务器端生成文件] * @param array $data 二维数组 * @param string $filename 文件名 */ function writeCsv($data, $filename = 'file.csv') { $fp = fopen($filename, 'w'); foreach ($data as $fields) { fputcsv($fp, $fields); } fclose($fp); } php服务器端生成c

PHP 生成.csv 文件并下载到浏览器

最近做了一个项目需要把订单的信息显示出来,并且能够把相关信息放到一个.csv 文件中,下载到浏览器.首先我要说明的是.csv 文件,PHP 有专门的函数去解析该类型的文件,相关函数大家可以去官网查看.注意.csv 文件内容的编码格式是gbk格式的,所以有必要对字符格式进行转码.文件的样式如下. 一.首先要定义header 头 // 输出Excel文件头,可把user.csv换成你要的文件名 header ( 'Content-Type: application/vnd.ms-excel' );

自制工具:CSV代码生成器:自动生成CSV文件对应的C++实体类和字段类型解析代码

本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee 更有开发效率地使用CSV文件 为了更有效率地使用CSV文件,我制作了一个工具:Code代码生成器. 这个工具可以对CSV文件进行简单地配置,自动生成这个CSV文件对应的C++数据结构和字段类型解析函数代码. 工程项目只要加入这些自动生成的代码,就可以更方便地使用来自CSV配置文件的数据. 用工具自动生代码,可以省去了手工编写.手工维护那些大量的.无聊繁琐的类型定义.数据转换的代码的过

django生成CSV文件

生成CSV和Excel文件:有时候我们做的网站,需要将一些数据导出到文件中以方便统计,在导出文件类型中生成CSV文件或者是Excel文件是常用的方式,导出的CSV文件或者Excel文件将以附件的方式下载下来,以下将讲解如何生成CSV文件. 生成小的CSV文件:我们用Python内置的csv模块来处理csv文件,并且使用HttpResponse来将csv文件返回回去,首先来介绍一下把数据写入到CSV文件的一种方法: import csv with open('abc.csv') as fp: wr

java将数据生成csv文件

1,httpRequest接口触发进程[或者可以换成其他方式触发] /** * 出入库生成CSV文件 * @param req * @param params * @return */@RequestMapping(value = "explanCsvFileToOrder")ResponseMessage explanCsvFileToOrder(HttpServletRequest req, @RequestParam Map<String, String> param

java生成CSV文件

内容简介 本文内容使用java实现数据生成CSV文件,有关CSV文件知识请参考:CSV (逗号分隔值文件格式) 实现代码(仅供参考,请根据实现情况来修改) /** * 坐标点参数实体类 */ public class PointsParamDto { /** * 坐标id(由1开始,累加1,这样的:1,2,3,4,5...) */ private String pointId; /** * X 坐标点 */ private String x; /** * X 坐标点 */ private Str