csv格式读取通用类

C++读取CSV表格 看到这个题目可能会有人问什么是CSV表格呢,在我做这个实现之前我也是没有听说过CSV表格,更不知道他有什么用了。CSV是一种Excel表格的导出格式,在Excel表格的菜单栏中点击文件->另存为会弹出一个文件夹浏览窗口,在下拉框中可以选择保存格式,其中有一个就是.CSV(逗号分隔符)选项。 CSV表格的规则: 1 开头是不留空,以行为单位。 2 可含或不含列名,含列名则居文件第一行。 3 阅读详情

需要添加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;
	}

}
 
【2025最新版】Open3D 区域生长分割(python详细过程版) 点云区域生长分割算法的python详细过程版实现。博客长期更新,本文最新更新时间为:2025年3月23日。 阅读详情

相关推荐

射频功率放大器设计实战:从理论到Layout的全流程解析

本文以一款40W、960MHz LDMOS功率放大器为例,系统解析了从理论分析、仿真设计到版图实现的射频功率放大器设计全流程。内容涵盖AB类放大器选型、核心指标定义、稳定性分析、Load-Pull/源牵引仿真、史密斯圆图匹配、偏置网络设计,以及最终的谐波平衡仿真与版图电磁验证,为工程师提供了一套从理论到实践的完整设计方法论。

weixin_29266007的博客 249

[推荐]一款好用的 csv 处理工具

官网:https://www.csvreader.com/  C# 和 VB.Net版本 java 版本:https://sourceforge.net/projects/javacsv/  或直接点此连接下载  https://nchc.dl.sourceforge.net/project/javacsv/JavaCsv/JavaCsv%202.1/javacsv2.1.zip 废话不多说...

Java高手真经 4513

高通QNN SDK实战:从PyTorch模型到Snapdragon设备的完整部署指南

本文提供了一份详尽的高通QNN SDK实战指南,手把手教你如何将PyTorch模型高效部署到Snapdragon设备。内容涵盖从环境搭建、模型转换、量化优化到多后端部署与性能评测的完整流程,旨在帮助移动AI开发者打通模型落地的“最后一公里”,充分发挥高通平台的硬件加速潜力。

pz8901234的博客 1283

java csv文件合并_JAVA-文件合并

packagecom.testSplitByNumber;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.nio.charset.Charset;importjava.util.ArrayList;importjava.util...

weixin_36315079的博客 1421

STM32与HT7038的高精度电能计量系统设计与实现

本文详细介绍了基于STM32微控制器与HT7038三相电能计量芯片的高精度电能计量系统设计与实现。文章从项目选型出发,深入剖析了硬件电路设计、SPI驱动开发、芯片校准及系统集成等关键环节,为智能电表、能源监控等应用提供了高性价比且稳定的国产化解决方案。

pytorch8learner的博客 389

数学建模预测模型——回归分析预测

作为预测模型的大块头,回归分析预测绝对是比较常用的预测模型的一种,下面是对该模型的学习,欢迎大家指正😊。

everything is possible,anything is OK. 1万+

Csv的读取和写入

1、CSV的读取 /* * Java CSV is a stream based library for reading and writing * CSV and other delimited data. * * Copyright (C) Bruce Dunwiddie bruce@csvreader.com * * This library is free software; you can redistribute it and/or * modify it under the

SeanDragon的博客 1251

别再纠结Dify了!实测对比RAGFlow和Dify,聊聊企业知识库到底该怎么选

本文深度对比了RAGFlow和Dify在企业知识库选型中的实际表现,从技术架构、性能指标、部署成本等多维度进行分析。RAGFlow在复杂文档处理和准确率方面表现突出,适合有专职技术团队的企业;而Dify则以低门槛和快速部署见长。文章提供了六维度评估法,帮助企业根据文档复杂度、准确率要求等技术指标做出明智选择。

weixin_30897233的博客 670

C#:导入Excel通用类(CSV格式)

一、引用插件LumenWorks.Framework.IO.dll(CsvReader)      插件下载地址:https://pan.baidu.com/s/1X9Sl4bWTNHJOJb_v-KUndA提取密码0az3 二、定义通用接口IExcelData.cs和IDataTransform.cs   IDataTransform.cs pub...

dieximing8933的博客 459

STM32 W5500 Freemodbus Modbus TCP协议功能实现

STM32F103VCT6 W5500(SPI1),实现Modbus-TCP协议的功能

坚韧与专注 2万+

如何通过单步调试的方法,找到 SAP Gateway 到底把 Fiori 应用发送的 OData 请求,投递到哪一台 ABAP 后台服务器了?

这是一个 Count 请求,得到服务器响应的数据是 204,这个 204 会以数字的形式,显示在 Fiori Launchpad tile 上。那如果当前 Gateway 系统可以连接到多台 ABAP 后台服务器,比如下图所示,可以连接 SAP S/4HANA,ERP 或者 SAP CRM,我怎么知道 SAP UI5 应用上显示的数据,到底来自哪一台 ABAP 后台服务器呢?,就是上图 ABAP 调试器里断点停留的位置,即 SAP Frontend 服务器,通过 RFC 将 OData 请求投递给。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 642

兼容标准的CSV文件读写类

这几天工作要读写CSV文件,CSV格式虽然很简单,为省事想先从网上找一个现成的,但找了半天只有一个看上去可以,至少读写都支持,在此基础上,按照标准修正了一下,标准才是王道。 贴一下CSV格式标准规则,来自百度百科 http://baike.baidu.com/view/468993.htm:   1 开头是不留空,以行为单位。   2 可含或不含列名,含列名则居文件第一行。   3 一行数...

weixin_34337381的博客 128

【反蒸馏实战 00】AI抢不走的工作:一份针对30个“高危”职位的“反取代”实战手册(反蒸馏计划启动)

AI时代职场生存指南:30个技术岗位的“反蒸馏”实战策略 随着AI技术快速发展,职场正面临前所未有的结构性重构。本系列专栏聚焦30个技术岗位,深入分析AI对各职位的影响路径,并提供系统性的"反蒸馏"策略。通过5层分析框架(AI冲击现状、核心价值解构、AI天花板、能力升级路径、人机协作模式),帮助从业者识别可替代任务与核心价值,建立不可替代的专业优势。内容涵盖IT开发、数据分析、产品管理等技术领域,为职场人提供从“被AI替代”到“与AI协同”的转型路线图,守护职业价值。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1651

csv中包含多余换行符_Java 用注解实现通用功能-csv文件的读取为例

作者:撸撸呀来源:掘金引言使用java注解可以实现一些共通的功能,假设有几种格式的csv文件,编码,分隔符,头部行数之类的定义各不相同,但我们想统一的处理他们,那就需要一个共通的方法。也许有人说,不用注解,只用个共通工具类不就行了吗?但是注解让代码更优雅,而且当你增加其他一些需求,比如其他csv格式的时候,只需要加几个注解就能轻松的扩张你的功能。那么看代码吧。1. 定义注解定义一个csv格式的注解...

weixin_36079936的博客 551

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

读取CSV文件的公共方法

[code="java"] import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.io.InputStreamReader; import java.u...

iteye_14360的博客 213

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python网络爬虫(十一)——csv

简介 逗号分隔值(Comma-Separated Values,csv),有时也称为字符分隔值,因为分隔字符也可以不是逗号 逗号分隔值文件以纯文本形式存储表格数据 CSV 文件由任意数目的记录组成,记录间以某种换行符分隔 每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符 通常,所有记录都有完全相同的字段序列 CSV 文件格式的通用标准并不存在,但是在 RFC 4180 中有基础性的描述 使用的字符编码同样没有被指定,但是 bitASCII 是最基本的通用编码 读写文

止步听风的博客 613

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Python】实现对csv格式的数据读取

Csv文本是一种非常常用的单工作表的纯文本数据存储格式,而且存储量要比Excel电子表格大很多,并且被所有计算机平台所使用,经常用于电子表格或数据库软件中。 一、创建csv文件 我们可以通过excel文件“另存为”得到csv文件 但是出现了错误 csv只支持单工作表的数据存储,多个工作表的工作簿,只保存当前活动工作表。 逗号分隔符的使用规范:每个数据必须包含相同的行数,并且每个数据之间相隔的行数必须相同,默认编码格式是:ANSI。 再次打开 用记事本的方式打开csv文件,显示了逗号分隔符的文件

计算机小白努力学习 5487

CSV格式详解,javascript写入读取CSV示例代码

CSV(Comma-Separated Values)是一种常用的数据交换格式,它以纯文本形式存储表格数据。CSV 文件中的每行通常表示一个数据记录,而每个记录由若干字段组成,字段之间使用逗号分隔。

大剑师兰特的GIS世界 4331

Anaconda:读取Excel数据之CSV格式

虽然有各种各样花里胡哨的分析工具,但是对数据存储来说,还是Excel大法好!前天介绍了如何从剪切板进行数据的读取,今天就来介绍一下Excel数据的读取。 #csv\xls\xlsx 有表姐之称的HR小伙伴们应该都知道,Excel的数据有csv\xls\xlsx三种常见的数据格式,这三种格式可能在我们用Excel进行操作的时候看不出来太大的差别,但是如果用Python或者R读取的话,就有区别了。 ...

weixin_44166420的博客 1万+

Android 读取csv格式数据文件

前言 什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在主流数据格式是采用的JSON,但是另一种就是.csv格式的数据,这种数据通常由数据库直接提供,进行读取。下面来看看简单的使用吧 正文 首先还是先来创建一个项目,名为ReadCSV 准备.csv格式的文件,点击和风APILocationList 下载ZIP,保存到本地,然后解压,这个时候在你的项目文件中新建

晨曦 6665

CSV格式文件的读取与保存

CSV格式文件的读取与保存 1. 什么是CSV 2. CSV文件的读取 3.CSV文件的保存 1. 什么是CSV "CSV"并不是一种单一的、定义明确的格式(尽管RFC 4180有一个被通常使用的定义)。因此在实践中,术语“CSV”泛指具有以下特征的任何文件:   1.纯文本,使用某个字符,比如ASCII,Unicode,EBCIC或GB2312(简...

u014490943的博客 2176

tensorflow读取数据之CSV格式

tensorflow要想用起来,首先自己得搞定数据输入。官方文档中介绍了几种,1.一次性从内存中读取数据到矩阵中,直接输入;2.从文件中边读边输入,而且已经给设计好了多线程读写模型;3.把网络或者内存中的数据转化为tensorflow的专用格式tfRecord,存文件后再读取。 其中,从文件中边读边输入,官方文档举例是用的CSV格式文件。我在网上找了一份代码,修改了一下,因为他的比较简略

sunquan_ok的博客 2万+

Java实现读取csv文件

JAVA读取CSV数据

艺博❀ 2万+
上一篇: ActiveMQ JMS生产者消费者模式收发通用类
下一篇: Des算法通用类
VirusFu
博客等级 码龄21年 51粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值