csv操作
需要引入javacsv.jar
以下为一个完整的Utils的写法,具体输出和输入需要自己修改参数。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Random; import org.springframework.util.StringUtils; import com.csvreader.CsvReader;
import com.csvreader.CsvWriter; /**
* 获取和写入csv文件内容
* <p>
* @author DennyZhao
* @since 1.0.0
*/
public class CSVUtils { /**
* 默认分隔符
*/
private static final char DEFAULT_SEPERATE_CHAR = ',';
/**
* 默认charset
*/
private static final Charset DEFAULT_CHARSET = Charset.defaultCharset(); /**
* 写数据
* @param targetFilePath
* @param fileName
* @param seperateChar
* @param charsetName
* @throws IOException
*/
public static void writeFile(String targetFilePath, String fileName, char seperateChar, String charsetName) throws IOException {
// 判断文件是否存在
File file = new File(targetFilePath);
if(!file.exists()) {
file.mkdirs();
}
// 判断是否有seperateChar
if(seperateChar == 0) {
seperateChar = DEFAULT_SEPERATE_CHAR;
}
// 判断是否有charset
Charset charset = DEFAULT_CHARSET;
if(!StringUtils.isEmpty(charsetName)) {
charset = Charset.forName(charsetName);
}
String filePath = targetFilePath + File.separatorChar + fileName;
// 获取csv文件及其数据
CsvWriter csvWriter = new CsvWriter(filePath, seperateChar, charset);
csvWriter.setForceQualifier(true); //这个决定了一般文件打开是不是有“”存在
String[] strHeader = {"userId","userName", "userAge"};
csvWriter.writeRecord(strHeader);
for(int i=0; i < 50; i++) {
String[] strArray = {i + "","张三" + i, (new Random()).nextInt(100) + ""};
csvWriter.writeRecord(strArray);
}
csvWriter.endRecord();
csvWriter.close();
} /**
* 读取csv文件中的数据
* @param originFile 要读入的文件
* @param seperateChar 分割符
* @param charsetName 编码格式
* @throws IOException
*/
public static void readFile(String originFile, char seperateChar, String charsetName) throws IOException {
// 判断文件是否存在
File file = new File(originFile);
if(!file.exists()) {
System.out.println("file is not exist...");
return;
}
// 判断是否有seperateChar
if(seperateChar == 0) {
seperateChar = DEFAULT_SEPERATE_CHAR;
}
// 判断是否有charset
Charset charset = DEFAULT_CHARSET;
if(!StringUtils.isEmpty(charsetName)) {
charset = Charset.forName(charsetName);
}
// 获取csv文件及其数据
CsvReader csvReader = new CsvReader(originFile, seperateChar, charset);
while(csvReader.readRecord()) {
//读取完毕
if(csvReader.getColumnCount() == 0) {
break;
}
long index = csvReader.getCurrentRecord(); //当前记录index
System.out.println("index: " + index);
if(index == 0) {
String[] headerArray = csvReader.getValues();
}
String userName = csvReader.get(1); //读取单条数据
String[] valArray = csvReader.getValues(); //读取数据变为数组
String recorder = csvReader.getRawRecord(); //直接读取一行数据
}
csvReader.close();
} public static void main(String[] args) throws IOException {
// 读数据
//String originFile = "C:\\Users\\zhaoq\\Desktop\\reader.csv";
//readFile(originFile, ',', "gb2312"); // 写数据
String targetFilePath = "C:\\Users\\zhaoq\\Desktop";
String fileName = "writer.csv";
writeFile(targetFilePath, fileName, ',', "gb2312");
} }
csv操作的更多相关文章
- Java CSV操作(导出和导入)
Java CSV操作(导出和导入) CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件 ...
- csv操作帮助类
功能描述: 集合转换为csv数据 DataSe转换为csv数据 using System; using System.Collections.Generic; using System.Data; u ...
- 【Java】Java CSV操作代码
CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据“栏”以逗号分隔,可允许程序通 ...
- python之pandas数据筛选和csv操作
本博主要总结DaraFrame数据筛选方法(loc,iloc,ix,at,iat),并以操作csv文件为例进行说明 1. 数据筛选 a b c (1)单条件筛选 df[df[] # 如果想筛选a列的取 ...
- pandas 写csv 操作
pandas 写csv 操作 def show_history(self): df = pd.DataFrame() df['Time'] = pd.Series(self.time_hist) df ...
- python之csv操作
在使用python爬虫时或者其他情况,都会用到csv存储与读取的相关操作,我们在这里就浅谈一下: CSV(Comma-Separated Values)逗号分隔符,也就是每条记录中的值与值之间是用分号 ...
- CSV - 操作比较
在数据报表生成的时候,我们一般会用程序去生成CSV.其中有些需要注意的地方. log_file = open('delay.%s.csv' % s_end, 'w') log_file.write(' ...
- C# csv 操作类
using System.Data; using System.IO; using System.Text; namespace YanZhiwei.DotNet2.Utilities.Common ...
- php csv操作
csv的写入数据: $data = array( array('qq号','登录时间','名称'), array('123456','2012-08-21 15:21:10'.chr(1),'我是来测 ...
随机推荐
- 峰Redis学习(3)Redis 数据结构(字符串、哈希)
第一节:Redis 数据类型介绍 五种数据类型: 字符串(String) 字符串列表(list) 有序字符串集合(sorted set) 哈希(hash) 字符串集合(set) 第二节:Redis ...
- PAT 乙级 1009 说反话 (20) C++版
1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中 ...
- vue之过滤器
在vue2.0以前的版本中vue内置的过滤器,但是因为缺乏纯JavaScript的灵活性,现在vue2.0版本中已经删除了内置过滤器,所以需要自己注册过滤器,我们可以定义本地(在某一个template ...
- 修改OBS为仅直播音频
准备工作: 1. VS2013 的最新更新版或者VS2015 2. QT Creater 5.7 https://www.qt.io/ 3. CMake (cmake-gui) 4. obs 依 ...
- Spring AOP 之编译期织入、装载期织入、运行时织入(转)
https://blog.csdn.net/wenbingoon/article/details/22888619 一 前言 AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP ...
- MySQL学习----explain查看一条sql 的性能
在开发的过程中,对于我们写的sql语句,我们有时候会考虑sql语句的性能,那么explain就是首选.Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决 ...
- CentOS 关闭图形用户界面
1 centos 7以下版本 vim /etc/inittab :initdefault: #改为 :initdefault: 2. centos 7.x版本 rm -f /etc/systemd/s ...
- 软硬链接ln
1:软链接 -- 快捷方式 I:ln -s 文件名 快捷方式的名字 文件名:使用绝对路径 II':目录也可以创建链接 2:硬链接 I: ln 文件名 硬链接的名字
- Linux性能优化 第八章 实用工具:性能工具助手
8.1性能工具助手 Linux有丰富的工具,这些工具组合来使用会更加强大.性能工具也一样,单独使用虽然也没有问题,但是和其他的工具组合起来就能显著提高有效性和易用性. 8.1.1 自动执行和记录命令 ...
- Noi.ac #309. Mas的童年(贪心)
/* 用所谓的加法拆分操作得到 x + y = (x ^ y) + 2 * (x & y) 那么我们这两段异或相当于前缀和 + 2 * 分段使左右两块&最大 记当前前缀异或和为S, 那 ...