java如何读取CSV
来源:才华咖 本文已影响1.15W人
来源:才华咖 本文已影响1.15W人
在项目开发中,我们经常需要读取csv的内容的操作。那么如何通过java读取CSV呢?下面小编为大家解答一下,希望能帮到大家!
Csv文件,逗号分隔的常用数据文件格式,默认可以用Office软件打开。
看项目中以前的处理方式是直接用用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, ,, ame("GBK"));
while (Record()) {
//读取每行数据以数组形式返回
String[] str = alues();
if (str != null && th > 0) {
if (str[0] != null && !""ls(str[0]())) {
(str);
}
}
}
} catch (FileNotFoundException e) {
r("Error reading csv file.",e);
} catch (IOException e) {
r("",e);
}
finally{
if(reader != null)
//关闭CsvReader
e();
}
return list;
}
以上代码有几个要点:
1 初始化CsvReader时指定分隔符和字符编码,如果不指定,默认分别为逗号和ISO-8859-1,我用了GBK,具体使用时要看当时的字符编码而定。
2 读取每行数据,返回字符串数组,数组内的顺序即文件数据列的顺序
3 最后记得关闭CsvReader
是不是很简单,返回的数组格式也正好是我想要的,而且拿到是原始的数据,没有经过特殊字符处理。
有些童鞋质疑特殊字符未经处理,插到数据库会出错,其实大可不必我们手工处理,一些基础组件比如JDBC的preparedstatement已经包含了对特殊字符的处理,我们只要以绑定参数的形式来传送这些包含特殊字符的数据就可以。常用的持久化框架底层也封装了JDBC,自然也对特殊字符做了处理。
JavaScript与java语言的区别
Java与JavaScript的区别
如何实现JavaScript的DIV块来回滚动效果
在Java中执行JavaScript代码
Java零基础如何学好Java语言
Java如何调用WebService
java与JavaScript语言有何不同
Javascript和Java语言间的异同比较
JavaScript如何获取获取当前年月日星期
从Java的jar文件中如何读取数据的方法
Java如何读取Jar中的资源
Java入门教程:如何使用一个Java
JavaScript如何获取地址栏中传递参数
JavaScript与Java的区别
java与javascript之间json格式数据互转详解
如何入门学习JavaScript
Java认证考试知识点:JavaSE6的新功能
如何调试javascript脚本呢
Java中如何高效的读取大文件
如何检查JavaScript变量的类型
考场作文如何取胜
Java如何读取图片EXIF信息
有关JAVA和JAVAC命令详细介绍
JavaScript客户端MVC框架用法
解析Java中如何获取Spring中配置的bean
拾取如何造句
如何在Mac上卸载Java
Java读取、写入文件如何解决乱码问题
Java中如何获取Spring中配置的bean
Java如何正则表达式分析读取网页内容
JavaScript如何进行数组复制
母版页时内容页是如何使用css和javascript
sun认证java程序员须知Java日志框架
Java如何读取文件内容再编辑
社保卡如何领取?
如何学好Java 学习Java的步骤介绍
如何正确实现Java中的hashCode方法
如何使用JavaScript实现倒计时
java如何利用java.net.URLConnection发送HTTP请求
java如何通过url读取文件