DBF文件格式

184 阅读2分钟

工具

DBF 文件结构

DBF 文件由 文件头(Header)数据记录(Records) 组成。

首先下载一个DBF文件 使用UE调整为菜单-高级-设置-编辑器-十六进制模式

UE更改配置
数据展示如下
UE更改配置
头信息展示如下
UE更改配置

.dbf - 维基百科,自由的百科全书

头部和字段部分均为32个字节

UE更改配置
  • 蓝色为heaher信息
  • 绿色为field信息
  • 红色为内容信息
  • 橙黄色为分隔符

DBF 文件头(Header)

2、4字节数据都为小端读取

偏移 (字节)长度 (字节)描述
01文件标识(版本号)
1-33最后更新时间(年、月、日)
4-74记录数
8-92头部长度(bytes)
10-112记录长度(bytes)
12-132保留(一般为 0)
14-152保留(一般为 0)
16-2712预留字段
281表标志(如 dBASE IV 时区信息)
29-313代码页标识
32-N可变字段描述符(每个字段 32 字节)
N+110x0D(字段描述符结束标志)
N+2-N+264可选dBASE IV 备注字段(可选)

字段描述(Field Descriptor)

偏移 (字节)长度 (字节)描述
0-1011字段名称(以 \0 结尾)
111字段类型(C=字符, N=数值, L=逻辑, D=日期, M=备注)
12-154数据偏移
161字段长度
171小数位数(适用于数值型)
18-192预留
201工作区 ID(dBASE IV 及以后)
21-3111预留
3210x0D(表示字段描述符结束)

数据记录(Records)

偏移量大小 (字节)内容说明
0x001记录删除标志0x20(空格)表示有效,0x2A(*)表示已删除
0x01N字段值按照字段描述表的格式排列

结束符(变长数据)

字节ASCII描述
0x0DCR 回车表明字段定义结束
0x1AEOF结束用于标识文件结束

一下是我根据以上文档写的Java读写DBF的工具类

buerxixi/EasyDBF