当前位置: 首页 > 工具软件 > CsvJdbc > 使用案例 >

【csvjdbc】Java解析csv文件的开源包及应用

彭令秋
2023-12-01

之前在做一个小的桌面程序时,因为需要读取csv文件(","分隔)中的数据,所以查到了csvjdbc这个开源包:
      http://sourceforge.net/projects/csvjdbc/

   csvjdbc说的简单点就是将csv中的表格内容(一般都是类似于一个数据表格)当做数据库的Table,通过自封装的引擎驱动(类似于jdbc)去解析, 也就是说:用户可以使用“SELECT * FROM table”这样的语句来获取csv文件中的数据。

一 csvjdbc原版 
我当时拿到的版本还是由 jackerm等人开发的最初的版本,实现的是非常简单的功能,仅仅是“SELECT * FROM table”,不支持"Where"等条件操作。而且csv文件中的内容也必须非常简单。
   以下举例说明:
   1. csv文件

2. Test java Code: 下面的注释很清楚我就不多说了

二 csvjdbc改动
   我发现我要解析的csv文件的头行(非数据行)不仅仅就1行,这种情况下原来的csvjdbc是没法满足这种情况的。于是准备着手修正csvjdbc来fix这个问题:
1.csv 文件

2. csvjdbc
   下载其源码分析了下,改动还是非常简单的,只需要增加一个prop属性:"ignoreHeaderLineNumber",该属性用于定义你所需要忽略的头行的行数。具体就不罗嗦了,大家可以看附件中的源代码。

3. Test java代码,需要传入“ignoreHeaderLineNumber”属性

后记:
   再后来我在http://sourceforge.net/projects/csvjdbc/上看到mfrasca一直在checkin源代码,聊了 下,才发现他好像已经解决了我这个问题,而且还增加了对“Where”等条件SQL 语句的支持,具体更新了那些我不是很清楚,我请求他release新的版本、更新点和文档,不过目前看来好像只release了jar,其他文档之类的还 没有。
没时间追了,不然可以好好分析分析实现原理等等的。

 类似资料: