有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教

是可以运行在非WIN平台上的代码。
1、象利用JDBC:ODBC桥来作为数据库连接来访问DBF文件的方法似乎不可行。因为要用到这个驱动DRIVER={MICROSOFT FOXPRO VFP DRIVER (*.DBF)}
2、有没有这样的开源项目?有的话请告知*_*
3、没有的话就只好通过数据库方式连接了,但不是上面提到的那种方法,应该是纯JAVA的数据库驱动方式,请赐教....

有jdbc driver可以用
http://www.hxtt.net/en/software/product.jsp

这个不知道是不是free的?
另外,我也查到了xBaseJ这个东西,确实好用,不过是要收费的否则就会expire!

现在我测试这个HXTT的时候才发现:原来它也不是开源的,大家还有没有其他开源的产品可以推荐一下啊? Apache这么多项目里有没有这类项目啊,我好象没找到!
我现在急着要用,救命啦!

终于被我找到了!
完全free的: http://www.svcon.com/ 这个网站主要是做数据库连接中间介的,其中用到了一个他们自己开发的叫做JDBF的项目,该项目就是专门控制dbf文件的,整个包只有30K大小,你们随便用个工具反编译一下就可以看懂里面的代码,很简单,就是按照具体格式处理文件!(注意,不是使用JDBC连接的。)
不过我试了一下,发现只支持三中格式的:foxpro2.x、DBase IV、DBase III。
大家用得着的话可以去那里下载! 有问题的话可以再来问我。

我发现国外的这类开源网站很多,国内的就少得可怜了!唉!

有人发EMAIL给我提出了JDBF不能读取中文问题的解决方法! 我就在这里追加一帖。一来可以给大家提供点儿信息,给象我这样还在用这种老式数据库格式的人来个“雪中送炭”;二来懂行情的也好一起跟我探讨探讨!共同进步嘛! 好了切入主题。
JDBF对于数据的读取采用了UNICODE字符集,所以读取数据的时候不存在问题。关键在于对字段的读取不兼容中文。
打开JDBF的源码就知道,它是把.dbf作为文件流的形式读进来的,但是我不明白它为什么读取字段和读取数据要分两种方式。读取字段的时候它是这样的:从文件流中一个一个byte(字节)地读取信息,却画蛇添足地把每个字节强行转化为字符(char)型,然后再把这一传char拼接成一个String字段。
这样就有问题了,在JAVA中一个char的大小是一个byte的两倍,这样的话,就相当于每个char的高位填入了一个为0000的空byte,对于使用高位的中文字符集来说,它就相当于每次读取了半个中文字符,然后就把这半个字符用补零的方法转换成整个中文字符,这就是JDBF不能读取中文字段名的原因。(所幸的是它在读取数据的时候却没有采用逐个byte读取的方式,所以不会出现问题。)
还有一点幸运的是,它读进来的字段虽然是错的,但是字段里面所含的信息没有丢失,我们只要把它人为填加的0000空byte去掉就可以转回真正的中文。
知道了原因,就很好解决了,下面是我写的一个转换函数,你在通过String columnName=DBFReader.getField(i).getName()得到每一个字段的时候使用这个函数转换,就可以转回正确的汉字。

//遍历字串的每一个char,转换成byte后组合成byte[],再转换成String返回
//****可以解决因逐个读入char(而不是byte)而组成的字串不能通过encoding还原成中文的问题****
public static String getStrByCharToByte(String str){
byte[] temp=new byte[str.length()];
for(int i=0;i<str.length();i++)
temp=(byte)(str.charAt(i));
return new String(temp);
}

我现在要做一个项目就是用java编写一个格式转换器,把bibtex文件转换成DBF文件,请问也是使用JDBF么?