成都网站建设
|
域名注册
|
虚拟主机
|
网站制作
|
网站案例
|
网站优化
|
网站推广
|
企业邮局
|
服务器租用
|
广告设计
首页
服务器租用
企业邮箱
虚拟主机
网站程序
营销推广
网站建设
域名注册
前端开发
网站备案
网站策划
|
网站建设
|
网站案例
|
虚拟主机
|
网站推广
|
云服务器
|
成都网站制作公司
|
php空间
|
独立IP空间
|
jsp虚拟主机
网站程序
java教程
asp程序
asp.net程序
vb编程
php程序
C#程序
服务器租用
web服务器
FTP服务器
服务器托管
服务器租用
vps主机服务器
企业邮箱
企业邮箱优势
企业邮箱设置
邮箱收发问题
邮箱功能讲解
邮箱其他问题
虚拟主机
主机购买
数据库
主机管理
FTP上传
主机续费升级
营销推广
seo优化
网站推广
搜索引擎
免费资源
网站建设
网站方案
网站改版
网页设计
网站维护
网站策划
域名注册
域名转入\转出
英文域名
通用网址
中文域名
域名解析
前端开发
html
jQuery
JavaScript教程
css
div+css
网站备案
备案流程指南
备案资料下载
备案常见问题
各省备案要求
移动互联网
wap手机网站
app应用开发
微网站
当前位置:
创新互联
>>
常见问题
>>
网站程序
>>
java教程
>>
浅谈Java读取Csv实践
浅谈Java读取Csv实践
作者:创新互联 文章来源:网站程序部 点击数:
更新时间:2008-12-09
看项目中以前的处理方式是直接用用
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怎样连接Access数据库
:上一篇
Java读取配置文件的几种方法
:下一篇
java教程相关文章
Java怎样连接Access数据...
JAVA 的程序流
Java源码:URL编程 -创新...
Java多线程方案如何处理关键代...
JAVA中浅复制与深复制
Java编程中线程池的最大性能开...
java程序中使用SSH框架的好...
java中OutOfMemory...
专注网站建设、网页设计、网站制作、企业网站建设——创新互联
移动互联网
|
网站备案
|
前端开发
|
域名注册
|
网站建设
|
营销推广
|
网站程序
|
虚拟主机
|
企业邮箱
|
服务器租用
|
热门搜索
服务电话:028-86922220 13518219792 公司地址:成都市太升南路288号锦天国际A幢10楼2号
企业邮箱:
service@cdxwcx.com
版权所有:成都创新互联科技有限公司 蜀ICP备09010846号
成都网站建设