最近做项目需要跟一些老系统进行数据交换,数据格式为DBF文件;我们使用JavaDBF读写文件,虽然这个处理工具很简单,不过已经够用了(另:由于这个项目已经没人维护了,所以网上提到的中文处理问题也只好自己改一下源码了)。
后来发现每处操作DBF文件的代码都很相似,但又存在差异,这些差异主要来自于每个DBF文件字段的个数、类型、顺序等信息不一致引起的;为了把这些重复又难看得代码抽取成工具类,我觉得引入一个xml配置文件来处理比较合理,而不是设计一个由多个参数重载形成的一系列公共方法;可能有些人对于配置文件已经满天飞的J2EE添加配置比较敏感,不过我觉得这样添加一个配置文件还是很有意义的,在DBF文件字段发生变化时,只需要添加和修改XML配置文件即可,代码改动量很少。
配置文件属性字段主要记录以下信息:标题、映射到列表的对象字段名、列名、类型、长度、精度等,其实可以根据你自己的需要,添加一些额外的属性;比如说枚举值的Id和Code的转换,我会添加class="com.numenzq.vo.EnumData"
alias="name"这两个属性来处理。
-
<
property
title
=
"地址"
name
=
"customer.address"
column
=
"address"
type
=
"C"
length
=
"50"
/>
-
<
property
title
=
"邮编"
name
=
"customer.postalCode"
column
=
"postalCode"
type
=
"C"
length
=
"6"
/>
-
<
property
title
=
"金额"
name
=
"amount"
column
=
"amount"
type
=
"N"
length
=
"10"
scale
=
"2"
/>
<property title="地址" name="customer.address" column="address" type="C" length="50" />
<property title="邮编" name="customer.postalCode" column="postalCode" type="C" length="6" />
<property title="金额" name="amount" column="amount" type="N" length="10" scale="2" />
DBF工具类提供出来的两个读写方法如下:
-
List readDbf(File file, Class clazz, String templateName)
-
-
InputStream writeDbf(List beans, String templateName)
List readDbf(File file, Class clazz, String templateName)
InputStream writeDbf(List beans, String templateName)
这样处理完全是依赖于配置文件的各属性字段的参数和顺序来读取文件和写文件,用反射写出来的代码除了异常一大堆,比较难看以外;还是有点影响性能的。
其实根据以上的思路,只需稍作修改,就可以写出比较简洁的读写Excel、Txt等不同格式的文件。尽可能的让程序看上去比较清爽。附件是以上方案的一个参考demo,有兴趣的朋友可以看看。
分享到:
相关推荐
JavaDBF,全称为Java处理DBF文件的库,是一种用于在Java应用程序中读取和写入DBF(dBASE格式)文件的工具。DBF文件是早期数据库系统如dBASE、FoxPro等使用的数据文件格式,包含表格数据和元数据。JavaDBF库为开发者...
1. **引入库**: 在项目中引入`javadbf.jar`,这通常通过Maven或Gradle等构建工具完成,或者手动将库添加到项目的类路径中。 2. **创建DBF表结构**: 使用库提供的API定义DBF文件的字段,包括字段名、数据类型和长度...
8. **API文档和示例**:为了方便用户使用,`dbf-jdbc-wisecoders`应提供详细的API文档,包括类、方法的解释和使用示例,帮助开发者快速上手。 在实际应用中,`dbf-jdbc-wisecoders`可能被用于数据迁移、数据清洗、...
1. **导入库**:首先,需要将JavaDBF-0.4.0库的JAR文件添加到项目的类路径中,以便在代码中使用其类和方法。 2. **创建DBFReader或DBFWriter对象**:根据需要读取或写入DBF文件,创建相应的对象。例如,`DBFReader ...
2. **Javadbf核心类**:`DbfFile`是主要的类,它代表一个DBF文件对象。你可以通过`DbfFile.open()`打开一个DBF文件,`DbfFile.close()`关闭文件,`DbfFile.getFields()`获取字段信息,`DbfFile.getRecords()`遍历...
1. **引入库**:将 `javadbf.jar` 和 `jdbf.jar` 添加到项目的类路径中。 2. **连接数据库**:使用JDBC API建立到目标数据库的连接。 3. **执行SQL查询**:编写SQL语句以获取所需的数据。 4. **数据转换**:使用 `...
6. **示例代码**:javadbf-0.4.0压缩包中可能包含了示例代码或教程,帮助开发者快速上手。这些示例通常展示如何打开文件、迭代记录、修改数据以及保存更改等基本操作。 7. **文档**:虽然没有直接提供,但高质量的...
`DBFField`类是javadbf库中的核心类,用于描述DBF文件中的字段。它有多个属性,如`name`(字段名)、`dataType`(字段类型)等。`FIELD_TYPE_C`表示字符型,`FIELD_TYPE_N`表示数值型。其他字段类型还包括日期型...
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
在实际应用中,我们首先需要将`javadbf.jar`添加到项目的类路径中,确保运行时可以访问到该库的类和方法。 以下是使用`javadbf.jar`库进行DBF转Text的基本步骤: 1. **导入库**:在Java源代码中,通过`import`语句...
总结来说,xBaseJ是Java开发人员处理DBF文件的强大工具,它简化了读写过程,使得在Java应用程序中集成对DBF文件的操作变得轻松易行。如果你需要在项目中处理DBF数据,xBaseJ是一个值得考虑的优秀选择。
该项目包含了项目所需要的jar包以及测试案例。...2.poi.ExcelUtil 为工具类,项目中可直接调用。 3.解决了javadbf读取dbf文件表头和数据乱码问题,com.webadmin.util.dbf.DBFReaderTest为测试用例。
Apache Commons项目中的DBF库提供了一套工具类,可以解析DBF文件并将其转换为Java对象。通过`DbfReader`类,可以打开DBF文件,获取字段信息,并迭代记录进行处理。 5. **代码示例**: 使用JDBF库读取DBF文件的...
本篇将详细探讨如何使用Java操作DBF文件,以及涉及到的相关知识点。 首先,DBF文件是dBase系列数据库管理系统(包括FoxPro)创建的一种表格文件格式。它包含了表的结构定义和实际数据,支持字段类型如字符、数字、...
总的来说,Java通过`javadbf-0.4.0.jar`库可以方便地读取和处理DBF文件,这对于需要从这些老式数据库格式中提取数据的应用程序来说,是一个重要的工具。`JavaDBFReaderTest.java`提供了验证和学习如何使用这个库的...
5. **Utils.java**:这是一个通用工具类,可能包含了处理字符编码转换或其他辅助功能的函数。 6. **DBFException.java**:这可能是自定义的异常类,用于抛出自定义的错误信息,如解析失败或编码问题。 通过这些源...
Java是一个广泛使用的编程语言,因此我们有一个名为“javadbf”的工具或库,这可能是用来读取和操作dbf文件的。使用Java读取dbf文件,可以借助如JDBC-ODBC桥接或第三方库,如Apache Commons DBF等。 以Apache ...
Java的Thread类和ExecutorService接口提供了创建和管理线程的工具。 4. **DBF文件结构** DBF文件的结构包括表头和数据记录两部分。表头包含了字段名、数据类型等元信息,数据记录则包含了实际的行数据。理解这个...