基于javadbf-0[1].4.0.jar包的dbf文件操作源码

时间:2011-12-25 10:20:09
【文件属性】:

文件名称:基于javadbf-0[1].4.0.jar包的dbf文件操作源码

文件大小:21KB

文件格式:RAR

更新时间:2011-12-25 10:20:09

java 源码 dbf 读写

一般的dbf文件都是数据库操作文件,用c语言进行操作的dll很多,但是java操作的很少,我找到了一个javadbf-0[1].4.0.jar的包,但是操作效果很不理想,尤其是末尾空格和乱码问题,于是我在这个jar包的基础上进行进一步开发,在尽量不影响效率的情况下,增加了对dbf各个方面的处理功能:查询,创建,copy文件结构等功能,目前没有发现bug,说明文档在程序中很详细,以下是我的说明演示部分代码,此源码需要5个积分,主要是因为可能需求不多,卖得少,成本高,望大家海涵:) 演示部分源码: public static void main(String[] args) { // TODO Auto-generated method stub /************************************************/ /* 初始化dbf操作对象 */ /************************************************/ DBF_tool dbf = new DBF_tool(); /************************************************/ /* 创建dbf操作,生成"creatDBF.dbf",此处采用相对路径 */ /* 也可以用绝对路径进行创建 */ /************************************************/ System.out.println("正在创建dbf文件:creatDBF.dbf ..."); dbf.createFile("creatDBF.dbf"); //dbf.createFile("D:\\creatDBF.dbf");//绝对路径 /************************************************/ /* 创建dbf表头信息,此处只能一次性输入所有表头信息 */ /* 表头信息由FiledInfor类生成,然后放入vector中 */ /* 此处为:编号,姓名,年龄,salary(薪水),出生日期 */ /************************************************/ System.out.println("创建dbf文件表头信息 ..."); FiledInfor filedinfor;//表头信息对象 Vector vecTitle = new Vector(); filedinfor = new FiledInfor(); filedinfor.filedDataType = DBF_tool.FIELD_TYPE_C;//类型 filedinfor.filedName = "编 号"; //名称 filedinfor.fieldLength = 8; //长度 vecTitle.add(filedinfor); filedinfor = new FiledInfor(); filedinfor.filedDataType = DBF_tool.FIELD_TYPE_C; filedinfor.filedName = "姓 名"; filedinfor.fieldLength = 12; vecTitle.add(filedinfor); filedinfor = new FiledInfor(); filedinfor.filedDataType = DBF_tool.FIELD_TYPE_N; filedinfor.filedName = "年 龄"; filedinfor.fieldLength = 5; filedinfor.decimalCount = 0; //精度 vecTitle.add(filedinfor); filedinfor = new FiledInfor(); filedinfor.filedDataType = DBF_tool.FIELD_TYPE_F; filedinfor.filedName = "salary";//不支持"salary(**)"这种方式,但支持中英文结合 filedinfor.fieldLength = 7; filedinfor.decimalCount = 2; vecTitle.add(filedinfor); filedinfor = new FiledInfor(); filedinfor.filedDataType = DBF_tool.FIELD_TYPE_D; filedinfor.filedName = "出生日期"; vecTitle.add(filedinfor); dbf.writeFiled(vecTitle); /************************************************/ /* 创建dbf表内容信息 */ /************************************************/ System.out.println("向dbf文件中添加内容 ..."); String dbfLine;//dbf每行的内容,filed之间以","分隔 dbfLine = "000001,经理,36,15000.00,88-12-9"; dbf.writeDBFLine(dbfLine); dbfLine = "000002,助理,30,10000.00,82-3-17"; dbf.writeDBFLine(dbfLine); dbfLine = "000003,小兵1,25,4000.12,87-5-20"; dbf.writeDBFLine(dbfLine); dbfLine = "000004,小兵2,28,4200,07-2-15"; dbf.writeDBFLine(dbfLine); dbfLine = "000005,小兵3,29,3800.00,02-4-23"; dbf.writeDBFLine(dbfLine); /************************************************/ /* 关闭创建dbf表操作,此为必须操作 */ /************************************************/ System.out.println("创建表操作结束!"); dbf.close(); /************************************************/ /* 打开dbf操作,绝对路径和相对路径皆可 */ /************************************************/ dbf = new DBF_tool(); System.out.println("正在打开dbf文件:creatDBF.dbf ..."); dbf.openFile("creatDBF.dbf"); System.out.println("分析..."); /************************************************/ /* 得到dbf的行列个数 */ /************************************************/ System.out.println("此dbf文件的数据有:"+dbf.DBFGetRecordCount()+ "行,"+dbf.DBFGetFieldCount()+"列,"); /*******************************************************/ /* 得到dbf各个字段的详细信息(目前可以得到:名称、类型、长度、精度 */ /*******************************************************/ System.out.println("各个字段的详细信息为:"); for (int i = 0; i < dbf.DBFGetFieldCount(); i++) { filedinfor = dbf.getDBFFiledInfor(i); System.out.println("name:"+filedinfor.filedName+" length:"+filedinfor.fieldLength); } /************************************************/ /* 得到指定名称在dbf中的位置 */ /************************************************/ System.out.println("其中,年龄在dbf表中的位置是:"+dbf.getDBFFiledNum("年 龄")); /************************************************/ /* 得到dbf中指定行数和列数的值,参数从0计 */ /************************************************/ System.out.println("第3行,第2列的值是:"+dbf.getContent(2, 1)); dbf.close(); /************************************************/ /* 复制dbf文件表头部分功能 */ /************************************************/ dbf = new DBF_tool(); System.out.println("将creatDBF.dbf的文件结构复制到新的文件copy.dbf中..."); dbf.copyDBFtitle("creatDBF.dbf", "copy.dbf"); dbf.close(); System.out.println("演示结束!"); }


【文件预览】:
dbfOpinion
----javadbf-0[1].4.0.jar(13KB)
----JavaDBF Tutorial.htm(11KB)
----DBF_tool.java(20KB)

网友评论

  • 下来看看。
  • 恩,不错,代码例子写的很详细
  • 不是源码,被骗了。
  • 感谢分享,很详细
  • 很不错的资源,非常的详细!
  • 本来以为是源码,其实不是。
  • 例子不错,但是没有源码!
  • 代码注释很详细。中文解决可参看网上的javadbf-fix.jar修复包。
  • 列子比较冗长, 那个说明dbf数据类型的表不错; 中文依旧乱码;
  • 恩,不错,代码例子写的很详细,注释的不错,赞一个呗