看项目中以前的处理方式是直接用用java IO类库读取Csv文件,实际处理中发现Csv文件本身包含了对各种特殊字符的处理信息。
最常见的比如:
1. 对包含特殊字符的字符串数据首尾加双引号
2. 对数据中的单个双引号前加单个双引号
其它...
所以用Java IO读到的字符串全是经过处理后的字符串,在某些场景下是不符合预期需求的。比如我需要的是不做任何处理的原始内容。
项目中另一种常见的文件格式Excel用了POI来处理,但是POI不支持Csv格式,于是找到了javacsv。
代码很简单:
Java代码
public List importCsv(String file) {
List list = new ArrayList();
CsvReader reader = null;
try {
//初始化CsvReader并指定列分隔符和字符编码
reader = new CsvReader(file, ',', Charset.forName("GBK"));
while (reader.readRecord()) {
//读取每行数据以数组形式返回
String[] str = reader.getValues();
if (str != null && str.length > 0) {
if (str[0] != null && !"".equals(str[0].trim())) {
list.add(str);
}
}
}
} catch (FileNotFoundException e) {
log.error("Error reading csv file.",e);
} catch (IOException e) {
log.error("",e);
}
finally{
if(reader != null)
//关闭CsvReader
reader.close();
}
return list;
}
以上代码有几个要点:
1 初始化CsvReader时指定分隔符和字符编码,如果不指定,默认分别为逗号和ISO-8859-1,我用了GBK,具体使用时要看当时的字符编码而定。
2 读取每行数据,返回字符串数组,数组内的顺序即文件数据列的顺序
3 最后记得关闭CsvReader
是不是很简单,返回的数组格式也正好是我想要的,而且拿到是原始的数据,没有经过特殊字符处理。
有些童鞋质疑特殊字符未经处理,插到数据库会出错,其实大可不必我们手工处理,一些基础组件比如JDBC的preparedstatement已经包含了对特殊字符的处理,我们只要以绑定参数的形式来传送这些包含特殊字符的数据就可以。常用的持久化框架底层也封装了JDBC,自然也对特殊字符做了处理。
相关推荐
本人以JAVA来实现以支付宝的账单表为例,实现JAVA读取CSV..csv是一种文件格式(如.txt、.doc等),也可理解.csv文件就是一种特殊格式的纯文本文件。即是一组字符序列,字符之间已英文字符的逗号或制表符(Tab)分隔。
通过引用【opevcsv】依赖,逐行读取数据 并转为Map,Object>格式,后续可以通过BeanUtil.MaptoBean()方法将map转为你需要的bean对象; csv文件必须带表头,bean对象命名符合驼峰格式; 通过此方法可以快速的将文件...
下载javacsv-2.0.jar ,根据例子进行读写CSV操作。
NULL 博文链接:https://qq-24665727.iteye.com/blog/2339850
Java读取excel,Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作。
Java读取CSV插入Neo4j并生成Echarts关系图
java读取csv格式文件jar包,已经修改过bug.
java读取csvjava 按顺序创建文件
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
NULL 博文链接:https://thinktothings.iteye.com/blog/1536044
java 语言读取csv文件,避免导入Excel时出现的单元格取值的问题
可读取复杂的csv文件,根据引号和逗号等分割读取所需要的数据信息。
通过Java读取指定行列的数据,请用eclipse平台打开。实现思想详见我的博客。
一个非常好用的csv文件操作工具
该文档主要介绍java如何操作csv文件,在这里介绍了一个工具包的使用,也黏贴了java对于读取csv文件和写入csv文件时,对于大数据量的处理和安排,有效的解决了处理大数据是内存溢出问题
主要介绍了java读取csv文件示例,这个java解析csv文件的例子很简单,下面直接上代码,大家参考使用吧
java 读取写入csv
java 解析csv文件例子,csv文件 中文乱码问题
利用Java swing 对csv和excel文件进行读写;并且可以同时读取5个文件的数量;通过关键字配置来读文件,还有就是通过POI CSVWriter等类的使用来对excel和csv等文件进行操作