java读取CSV的方法
来源:才华咖 本文已影响1.35W人
来源:才华咖 本文已影响1.35W人
在项目开发中,我们经常需要读取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简单获取系统当前时间的方法
Javascript和Java语言间的异同比较
JavaScript客户端MVC框架用法
JavaScript与java语言有何不同
在Java中执行JavaScript代码
使用ajax操作JavaScript对象的方法
JavaScript与Java的区别
JavaScript与java语言的区别
Java与JavaScript的区别
使用JavaScript实现Java的List功能
获取JavaScript中的方法
JavaScript与java语言有何区别
javascript获取select值的方法和分析
java与JavaScript语言有何不同
java与javascript之间json格式数据互转详解
JavaScript清空数组的方法
javascript的方法
Java认证考试知识点:JavaSE6的新功能
Java读取xml文件的方法
Javascript加载方法
30行代码实现Javascript中的MVC
开失业证明的方法和领取方法
javascript编程技巧方法
JAVA和JAVAC命令行大全
学习javascript的最佳方法
信心+态度+方法=取得好的成绩
JAVA认证基础知识:JavaNativeInterface学习小结
Java读取邮件的方法有哪些
关于javascript中apply()和call()方法的区别
Java读取xml文件的方法
sun认证java程序员须知Java日志框架
JavaScript ES6中CLASS的使用指南
如何正确实现Java中的hashCode方法
JavaScript数组的栈方法与队列方法
JavaScript常用方法汇总
堆的javascript实现方法
javascript中的DOM方法
《幸福的方法》读后感
有关JAVA和JAVAC命令详细介绍
javascript跨域访问的方法