`
virusfu
  • 浏览: 182938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

csv格式读取通用类

    博客分类:
  • java
 
阅读更多

需要添加javacsv.jar 支持

import static net.etongbao.common.utils.StringUtils.toStringWithOutNull;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;

/**
 * 解析CSV文件
 * 
 * @author Fu Wei
 * 
 */
public class CsvUtils {
	/** 编码 */
	private static final String ENCODING = "UTF-8";

	private static final Logger LOG = LoggerFactory.getLogger(CsvUtils.class);

	/**
	 * csv格式读
	 * 
	 * @param String
	 * @return List<Map<String, Object>>
	 * @throws CsvException
	 */
	public static List<Map<String, Object>> csvReader(String csvText) {
		List<Map<String, Object>> csvList = new ArrayList<Map<String, Object>>();
		try {
			CsvReader reader = CsvReader.parse(csvText);
			// 考虑到图片大小,设置最大长度不受限制
			reader.setSafetySwitch(false);
			String[] headers = null;
			if (reader.readHeaders()) {
				headers = reader.getHeaders();
				while (reader.readRecord()) {
					Map<String, Object> csvMap = new HashMap<String, Object>();
					for (String head : headers) {
						csvMap.put(head, reader.get(head));
					}
					csvList.add(csvMap);
				}
				LOG.debug("CsvUtils--->csvList:{}", csvList);
				return csvList;
			} else {
				LOG.error("csv读取头失败");
			}
		} catch (UnsupportedEncodingException e) {
			LOG.error("csv读取编码异常");
		} catch (IOException e) {
			LOG.error("csv读取IO异常", e);
		}
		return null;
	}

	/**
	 * csv写
	 * 
	 * @param csvList
	 * @return
	 * @throws CsvException
	 */
	public static String csvWriter(List<Map<String, Object>> csvList) {
		String csvText = null;
		ByteArrayOutputStream stream = new ByteArrayOutputStream();
		CsvWriter writer = new CsvWriter(stream, ',', Charset.forName(ENCODING));
		if (csvList != null && csvList.size() > 0) {
			// 获取第一行map key,
			Map<String, Object> headMap = csvList.get(0);

			if (headMap != null && 0 <= headMap.size()) {
				// 提取cvs列
				Iterator<String> it = headMap.keySet().iterator();
				try {
					while (it.hasNext()) {
						writer.write(it.next());
					}
					writer.endRecord();
					boolean falg = false;
					for (Map<String, Object> csvMap : csvList) {
						if (falg) {
							writer.endRecord();
						}
						for (Entry<String, Object> map : csvMap.entrySet()) {
							String value = toStringWithOutNull(map.getValue());
							writer.write(value);
						}
						falg = true;
					}
					writer.close();
					csvText = stream.toString();
					stream.close();
					return csvText;
				} catch (IOException e) {
					LOG.warn("csv写入IO异常");
				}
			} else {
				LOG.warn("拆解cvs数据为空");
			}
		} else {
			LOG.warn("拆解cvs数据为空");
		}
		return null;
	}

}
 
分享到:
评论
1 楼 tjzx 2012-10-18  
import static net.etongbao.common.utils.StringUtils.toStringWithOutNull;
报错,不知使用什么包了

相关推荐

    c#csv快速读取类# dll控件

    LumenWorks公司开发的`LumenWorks.Framework.IO.dll`是一个知名的C# CSV读取库,它提供了强大的功能,使得开发者可以快速而高效地处理CSV文件。这个DLL包含了各种类和方法,帮助开发者轻松实现以下功能: 1. **快速...

    delphi7 stringgrid保存数据为csv格式,以及读取

    CSV格式因其简单、通用而被广泛用于数据交换,尤其是当数据需要在不同的应用程序之间共享时。 标题提到的“delphi7 stringgrid保存数据为csv格式”涉及到以下几个关键步骤: 1. **遍历StringGrid**:首先,我们...

    读取Excel文件xls、xlsx、csv格式文件,读取txt文件

    //C# 读取Excel文件、C#读取xls文件、C#读取xlsx文件、C#读取csv文件 //C# 将xls文件转换为DataTable、C#将xlsx文件转换为DataTable //C#将csv文件转换为DataTable //C#将txt文件转换为DataTable(列与列之间空格隔...

    C#文件流读取CSV文件

    CSV文件因其简洁性和通用性,常被用作数据交换格式,特别是在导入和导出表格数据时。 在C#中,我们通常使用`System.IO`命名空间中的类来处理文件流。读取CSV文件时,我们可以使用`FileStream`类打开文件,然后配合`...

    CSV文件读取类C++源代码

    这个类提供了基础的CSV读取功能,但实际应用中可能需要考虑更多细节,比如错误处理、编码兼容性、大小写敏感的分隔符匹配等。此外,还可以扩展这个类,支持写入CSV文件,或者添加更高级的功能,如支持引用行和列的...

    excel/csv数据读取

    在IT领域,数据处理是一项至关重要的任务,而Excel和CSV文件由于其易用性和通用性,经常被用作数据交换的格式。在这个“excel/csv数据读取”的主题中,我们将探讨如何在Visual Studio 2010环境下读取这两种文件类型...

    java读取csv格式文件

    在Java编程环境中,CSV(Comma Separated Values)文件是一种常见的数据存储格式,通常用于导入导出数据到数据库、电子表格或分析工具。CSV文件以其简单性和通用性而受到广泛欢迎。本篇将深入探讨如何在Java中读取...

    csv表格读取和写操作

    在IT行业中,CSV(Comma Separated Values)文件是一种广泛使用的数据存储格式,因其简单、通用和易于处理的特性而受到青睐。这个程序专注于CSV文件的读取和写入操作,这是数据分析、数据存储和数据交换的基础技能。...

    MFC CSV文件的读取和写入

    在IT行业中,CSV(Comma Separated Values)文件是一种广泛使用的数据存储格式,因其简洁、通用和易于处理的特性而受到青睐。MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序...

    Python中 CSV格式清洗与转换的实例代码

    CSV(Comma-Separated Values,逗号分隔值)格式是一种通用的文件格式,用于以纯文本形式存储表格数据,如数字和文本。CSV文件由任意数量的记录组成,记录间以换行符分隔,每个记录由字段组成,字段之间以逗号分隔。...

    UCI数据集(arff格式+csv格式)

    CSV格式则是更为通用的数据交换格式,它的每个数据项由逗号分隔,便于在不同程序之间导入和导出数据。CSV文件通常更轻量级,易于读取和处理,但不包含属性的类型信息,所有数据被视为字符串处理,因此在处理时可能...

    读取创建CSV文件并自动解析文件编码方式

    在IT行业中,CSV(Comma Separated Values)文件是一种广泛使用的数据交换格式,因其简单、通用而备受青睐。本文将深入探讨如何读取和创建CSV文件,并特别关注自动解析文件编码方式这一关键环节。我们将使用Java语言...

    xlsx格式转csv格式的实例

    XLSX是Excel 2007及更高版本使用的默认文件格式,而CSV是一种通用的数据交换格式,被广泛用于数据分析和导入其他应用程序。 标题"xlsx格式转csv格式的实例"指出我们的目标是学习如何执行这个转换。Python提供了许多...

    c++读取csv文件

    CSV文件以其简洁、通用的格式被广泛用于存储表格数据,例如数据库导出、电子表格或者统计报告。本文档将详细讲解如何在Visual Studio 2013环境下使用C++语言读取CSV文件,并通过动态分配数组来存储读取到的数据。 ...

    MNIST数据集及其csv格式

    CSV是一种通用的文件格式,用于存储表格数据,如电子表格或数据库。在MNIST的CSV文件中,每一行可能代表一个样本,列则包含图像的像素值和对应的标签。例如,对于28x28的图像,会有784列(28x28=784)表示像素强度,...

    java 读取csv文件

    CSV文件因其简洁、通用的格式而被广泛使用。本篇将详细介绍如何在Java中有效地读取CSV文件,以及如何避免在导入Excel时可能出现的单元格取值问题。 首先,理解CSV文件的结构至关重要。CSV文件是以逗号分隔的纯文本...

    C#读取和保存Csv文件

    之前项目中需要做导入功能,开始使用的excel但是支持大数据量时有内存溢出问题,后来使用了Csv格式进行导入,百度了一下Csv格式读取,前几页居然没有一个能用的,研究了两天,在网上的代码进行了修改,目前可以支持...

    C#读取CSV EXCEL文件

    CSV文件是一种通用的文本文件格式,用于存储表格数据,而EXCEL文件是一种常用的电子表格文件格式。C#语言提供了多种方法来读取CSV和EXCEL文件,本文将对其中的一些方法进行介绍。 一、使用OleDbConnection读取CSV...

    读取csv文件显示中文

    CSV(Comma Separated Values)是一种通用的、轻量级的数据存储格式,它使用逗号分隔值来组织数据。然而,当CSV文件包含中文字符时,可能会遇到显示乱码的问题。解决这个问题涉及到字符编码的理解和正确设置。以下是...

    IDL,气象站点逐小时数据处理,转换成CSV文件格式,并按天数和站点ID整合

    在这个过程中,使用CSV作为输出格式是因为CSV(Comma-Separated Values)是通用的数据交换格式,易于被其他软件和编程语言如Python、R或Excel读取。这种数据组织方式使得气象数据的分析更加高效和便捷。 总结来说,...

Global site tag (gtag.js) - Google Analytics