java 对CSV 文件的读取与生成
CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开。CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CSV文件的读取与生成其实很简单,只要读取的时候用(,)进行切割就可以获得相应的列元素,在生成的时候不同的列元素之间加上(,)
demo如下:
//读取CSV文件
public void readCsvFile(String fileName) throws IOException {
BufferedReader bufferedReader=null;
try{
bufferedReader=new BufferedReader(new FileReader(fileName));
String line=null;
while(null!=(line=bufferedReader.readLine())){
String[] lines = line.split(",");
logger.info("这就是文件的内容"+ Arrays.toString(lines));
}
}catch (IOException e){
throw new IOException(e);
}finally {
if(bufferedReader!=null){
try {
bufferedReader.close();
} catch (IOException e) {
logger.error("输入流关流出现异常",e);
}
}
}
}
//生产CSV文件
public static void writerCsvFile(String fileName, List<String[]> list) throws IOException {
BufferedWriter bufferedWriter=null;
try{
bufferedWriter= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName),"GBK"));
for (String[] s:list) {
for (int i=0;i<s.length;i++){
bufferedWriter.write(s[i]);
bufferedWriter.write(",");
}
bufferedWriter.newLine();//记得换行
}
}catch (IOException e){
throw new IOException(e);
}finally {
if(bufferedWriter!=null){
try {
bufferedWriter.close();
} catch (IOException e2) {
logger.error("输出流关流出现异常",e2);
}
}
}
}
值得注意的是:在进行生成CSV文件的时候,对于长的数字组成的字符串的写入,CSV会自动进行数字化转换,即科学计数法,对于要不要处理,还是根据需求来定
如果是想直观的双击打开就不要进行转换的话,就要在写入的时候,告诉CSV,我不是写的数字,可以进行再写的时候拼接\t,;等信息
如果生成的CSV文件,也是使用的输入流进行读取的话,不用做处理,会自动进行识别,因为这个是CSV文件的格式
java 对CSV 文件的读取与生成的更多相关文章
- Java从.CSV文件中读取数据和写入
.CSV文件是以逗号分割的数据仓储,读取数据时从每一行中读取一条数据元祖,也就是一条数据,再用字符分割的方式获取表中的每一个数据项. import java.io.BufferedReader; ...
- mac 下做csv文件的读取与生成的 遇到的坑
mac下每次读取就把所有的行都读出来了,其实windows下是正常的. 错误原因是逗号的识别方式不对
- java 操作 csv文件
CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据“栏”以逗号分隔,可允许程序通 ...
- Python对于CSV文件的读取与写入
今天天气"刚刚好"(薛之谦么么哒),无聊的我翻到了一篇关于csv文件读取与写入的帖子,作为测试小白的我一直对python情有独钟,顿时心血来潮,决定小搞他一下,分享给那些需要的小白 ...
- 深度学习原理与框架-递归神经网络-时间序列预测(代码) 1.csv.reader(进行csv文件的读取) 2.X.tolist(将数据转换为列表类型)
1. csv.reader(csvfile) # 进行csv文件的读取操作 参数说明:csvfile表示已经有with oepn 打开的文件 2. X.tolist() 将数据转换为列表类型 参数说明 ...
- 图像处理项目——生成csv文件提高读取效率
利用pyhton脚本生成csv文件 *开发环境为windows PyCharm*使用的是pyhton脚本*生成人脸和人脸对应的标签的csv文件 一:主要步骤 1.载入对应路径2.提取每一张图片对应的位 ...
- scala/java等其他语言从CSV文件中读取数据,使用逗号','分割可能会出现的问题
众所周知,csv文件默认以逗号","分割数据,那么在scala命令行里查询的数据: 可以看见,字段里就包含了逗号",",那接下来切割的时候,这本应该作为一个整体 ...
- Java操作csv文件
以前就一直很想搞懂一个问题就是java如何读取和写入csv文件,现在要花时间总结一波. 主要使用的javaCSV.jar javaCSV API:http://javacsv.sourceforge. ...
- 如何用Java解析CSV文件
首先看一下csv文件的规则: csv(Comma Separate Values)文件即逗号分隔符文件,它是一种文本文件,可以直接以文本打开,以逗号分隔.windows默认用excel打开.它的格式包 ...
随机推荐
- openvswitch datapath 内核态流表创建过程(ovs_flow_cmd_new)
datapath流表更新的入口函数都定义在dp_flow_genl_ops中,流表创建的入口函数是ovs_flow_cmd_new函数,通过该函数,我们可以一窥流表相关信息的建立. 1.ovs_flo ...
- BZOJ 4517--[Sdoi2016]排列计数(乘法逆元)
4517: [Sdoi2016]排列计数 Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 1727 Solved: 1067 Description ...
- 1.python的一些规范
Python的一些规范 1.标识符 定义:允许作为名字的有效字符串集合 名字必须有实际意义,可读性好 首字母必须是字母或下划线(_) 剩下的字符可以是字母和数字或者下划线 大小写敏感 两种风格:con ...
- Math-645. Set Mismatch
The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of ...
- FunDA(14)- 示范:并行运算,并行数据库读取 - parallel data loading
FunDA的并行数据库读取功能是指在多个线程中同时对多个独立的数据源进行读取.这些独立的数据源可以是在不同服务器上的数据库表,又或者把一个数据库表分成几个独立部分形成的独立数据源.当然,并行读取的最终 ...
- jsp页面,jstl标签中的数据在<%%>java中使用
可参考jsp的API隐式对象.. 这部分数据其实被保存在page域中,但jsp中如果使用java代码需要在特定的标签中<%%>,在这个标签中可使用的只有pageContext对象,所以可以 ...
- Android studio 安装的安装若干问题
1.在国内如何更新android sdk? 由于众所周知的某些原因,我们无法直接连接android sdk的更新服务更新sdk,所以可以通过国内的ftp站点把常用的sdk组件如android plat ...
- 【jxoi2018】游戏 组合数学
首先令$n=r-l+1$. 令$k$表示区间$[l,r]$中存在多少个数$x$,使得$x$不存在小于$x$且在区间$[l,r]$中的因数,我们把包含这些数的数集称为$S$ 我们来先想一个$O(nk)$ ...
- hive多表联合查询(GroupLens->Users,Movies,Ratings表)
hive (UserMovieRating)> create table if not exists Users( > UserID int co ...
- 通过Groovy来消除代码噪声
通过Groovy来消除代码噪声 Java是在JVM上运行的最广泛使用的编程语言.不过,还有很多其他基于JVM的语言,比如Groovy,Scala,JRuby,Jython,Kotlin等等.其中,Gr ...