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),'我是来测 ...
随机推荐
- Flink 集群安装配置
以下操作均在主节点进行 1.环境变量 添加FLINK_HOME以及path的内容: export FLINK_HOME=/bigdata/flink- export PATH=$PATH:$JAVA_ ...
- jquery load()函数和window.onload事件
我想用jquery load()一个饼状图页面, 但是load不出来 代码如下: 后来百度了一下,解决办法如下: window.onload事件只有在文档载入的时候才会执行的,你载入子页面不会触发这个 ...
- python面向对象:类空间,对象空间, 组合
一. 类空间,对象空间 1. 类空间,对象空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变 ...
- HBase分布式集群部署与设计
先是把cdh版本的hbase上传上来 把安装吧的权限设置一下 解压 把没用的东西干掉 hbase的官网 配置文件 到hbase-site.xml 下面我不基于HA配置了 把hbase分发到其他两个节点 ...
- 常见sql注入的防范总结
在平时的开发过程中,我们可能很少会刻意的去为项目做一个sql注入的防范,这是因为你可能因为使用了某些框架,而无意间已经有了对应sql注入的一些防范操作(比如mybatis使用#{XX}传参,属于预编译 ...
- jquery 弹框,确定、取消
function del(id, url) { var bool = confirm("确定删除?") if (bool) { //点击确定后操作 var Urls = " ...
- 微信小程序获取用户信息
App({ appData: { userInfo:{ user_portraitUrl: "", user_nick: "", user_gender: 0, ...
- 【Jmeter自学】Jmeter性能测试(四)
==================================================================================================== ...
- [Unity基础]RenderTexture
参考链接: https://www.cnblogs.com/Jimm/p/5951362.html 一.相关API 1.Texture2D.ReadPixels 从RenderTexture.acti ...
- eclipse添加缺失的包/src/main/resource
右键>>build path>>source 添加文件夹