JiveJdon Community Forums
在线317人   Home   论坛   培训咨询   精华   查搜   注册   登陆
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 6 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
mysapphire

悄悄话
发表文章: 33
注册时间: 2003年12月29日 15:03
有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教 2004年03月03日 10:07 本帖网址 发送到手机 回复
是可以运行在非WIN平台上的代码。
1、象利用JDBC:ODBC桥来作为数据库连接来访问DBF文件的方法似乎不可行。因为要用到这个驱动DRIVER={MICROSOFT FOXPRO VFP DRIVER (*.DBF)}
2、有没有这样的开源项目?有的话请告知*_*
3、没有的话就只好通过数据库方式连接了,但不是上面提到的那种方法,应该是纯JAVA的数据库驱动方式,请赐教....
skyknight

悄悄话
发表文章: 3
注册时间: 2002年10月09日 22:12
Re: 有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教 2004年03月07日 20:09 本帖网址 发送到手机 回复
有jdbc driver可以用
http://www.hxtt.net/en/software/product.jsp
mysapphire

悄悄话
发表文章: 33
注册时间: 2003年12月29日 15:03
Re: 有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教 2004年04月14日 13:20 本帖网址 发送到手机 回复
这个不知道是不是free的?
另外,我也查到了xBaseJ这个东西,确实好用,不过是要收费的否则就会expire!
mysapphire

悄悄话
发表文章: 33
注册时间: 2003年12月29日 15:03
Re: 有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教 2004年05月09日 17:43 本帖网址 发送到手机 回复
现在我测试这个HXTT的时候才发现:原来它也不是开源的,大家还有没有其他开源的产品可以推荐一下啊? Apache这么多项目里有没有这类项目啊,我好象没找到!
我现在急着要用,救命啦!
mysapphire

悄悄话
发表文章: 33
注册时间: 2003年12月29日 15:03
Re: 有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教 2004年05月21日 16:35 本帖网址 发送到手机 回复
终于被我找到了!
完全free的: http://www.svcon.com/ 这个网站主要是做数据库连接中间介的,其中用到了一个他们自己开发的叫做JDBF的项目,该项目就是专门控制dbf文件的,整个包只有30K大小,你们随便用个工具反编译一下就可以看懂里面的代码,很简单,就是按照具体格式处理文件!(注意,不是使用JDBC连接的。)
不过我试了一下,发现只支持三中格式的:foxpro2.x、DBase IV、DBase III。
大家用得着的话可以去那里下载! 有问题的话可以再来问我。

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

悄悄话
发表文章: 33
注册时间: 2003年12月29日 15:03
Re: 有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教 2004年08月18日 11:04 本帖网址 发送到手机 回复
有人发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);
}
superanne

悄悄话
发表文章: 1
注册时间: 2005年03月07日 23:50
Re: 有人在纯JAVA方式下写过操作DBF文件的代码吗?请赐教 2005年03月08日 00:02 本帖网址 发送到手机 回复
我现在要做一个项目就是用java编写一个格式转换器,把bibtex文件转换成DBF文件,请问也是使用JDBF么?
这个主题有 6 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam