大家知道什么叫做Csv文件吗?其实它是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。以前小编在看java项目的时候,发现其一般处理方式都是直接使用javaIO类库来读取Csv文件的。而在实际处理中,小编却发现在Csv文件本身自己就已经包含了对各种特殊字符的处理信息。那么今天我们就来解析Java读取Csv文件实践。
最常见的情况,大家可以参考一下下面的情况:
①如果在数据中有单个双引号的话,那么应该在此双引号之前加单个双引号;
②对于一些字符串数据中,在其包含着特殊字符的话,应该在首尾都加个双引号;
③还有一些其他的情况,小编就不再讲述了。
所以我们使用JavaIO读取到的字符串,全部都是一些已经经过处理以后的字符串。而这些字符串,在某些场景下往往是不符合我们预期需求的。比如说:小编所需要的是一些完全没有经过任何处理的原始内容。
在项目中,其实还有另外一种比较常见的文件格式Excel,他也是使用了POI来进行处理。那么问题就来了,POI是并不支持Csv文件格式的。所以小编没有办法,还是找到了javacsv。代码其实相对来说还是较为简单的,具体的代码,如图所示:
好了,大家看完以上的代码以后,都了解了吗?其实小编在这里,为了可以方便大家深入了解一下代码,觉得还是要为大家讲解一些代码中的几个要点的。
具体的要点如下:
①我们在进行CsvReader初始化的时候,一定要指定好字符编码以及分隔符这两者。假如说这两者我们都不指定的话,那么我们就将其设置为默认值,分别为逗号和ISO-8859-1。小编在这里使用了GBK,有人会问这具体怎样使用?小编想说,具体使用的时候,其实还是要看当时的字符编码而定的。
②接着读取每一行的数据,并且返回到字符串数组,在字符串数组内的顺序就相当于文件数据列的顺序。
③最后的最后,我们还要记住一点:那就是一定要把CsvReader关闭掉。这也是非常重要的一点哟!
哈哈,看完以上的教程,发现方法是不是非常的简单易学呢?而它返回的数组格式也刚刚好是小编所想要的格式,另外一个方面就是,小编所拿到的数据都是一些原始的内容,并没有经过任何的特殊字符处理。
那么问题就来了?有一些朋友会和小编说,这些特殊的字符并没有经过任何的处理,那么将其插入到数据库的时候,是否会出错呢?其实这个问题,我们大可不必自己进行手工处理。有些一些基础组件就已经包含了对这些特殊字符的处理功能(就比如说:JDBC即Java Data Base Connectivity里面的preparedstatement),我们就仅仅只需要以绑定参数的形式来进行传送这些包含特殊字符的数据即可。大家最常用的持久化框架底层同时也封装了JDBC,自自然然的也会对这些特殊字符做了相对应的处理了。
小编结语:
今天的教程“解析Java读取Csv文件实践”就已经介绍完毕了,如果你也有这样的需要,那就赶快来学习一下吧。毕竟这是非常基础的知识,大家一定要学会哟!更多更全面的编程语言教程,尽在课课家教育。