用于固定长度记录文件的Java(ME)库

时间:2010-01-07 14:50:06

标签: java database data-structures mobile

我正在寻找一个可以在Java ME(Foundation Profile 1.1,CDC)上运行的库,并且允许我基本上按照

的方式做一些事情。
FILE OF type;

在Pascal。

背景:我需要有一个大约500,000个记录的大约(大约100MB)记录,以便通过已知的索引值快速查找。我真的必须自己写吗?像Derby这样的数据库太大了,带来了很多功能(存储过程,任何人?)我不需要。

理想情况下,我只想定义一个基于原始类型的字段和字符串作为值持有者对象的类,并将它们保存在一个文件中,我可以 - 如果需要的话 - 手动恢复。这就是我不太喜欢序列化的原因。从过去开始,我曾经多次遇到过无法恢复的二进制数据文件。

2 个答案:

答案 0 :(得分:0)

这里最大的问题是在文件中建立字段名和列之间的对应关系,因为你真的不应该假设类布局与源文件中的字段排序相匹配。

如果文件包含标题行,那么使用反射/内省是一件简单的事情,并且不应该花费超过一天的时间来实现自己。

或者,您必须使用某种注释来为每个字段指定它在文件中的显示位置。

您是否考虑过使用XStream替代文本序列化方法,例如CSV,JSON或XML?这些可以避免二进制损坏的风险,并且可以让您更快地运行,但也可能会增加内存占用,这可能是一个问题,因为您的目标是移动设备。

答案 1 :(得分:0)

环顾了一段时间后,我终于从SourceForge来到了xBaseJ。它依赖于java.nio,它通常不包含在JavaME CDC配置文件中,但我们有一个承包商端口,它是移动J9 VM的相关部分。有了这个,我们现在在DBase III兼容文件的基础上构建我们的应用程序。除了速度相当快,即使在移动平台上,这也让我们可以访问大量可以处理这种格式的工具,而无需向非技术人员讲授他们感到不舒服的基于JDBC的数据库管理工具。

最近发布了一本名为“您需要了解的最低xBaseJ的电子书”,该电子书也可从该项目的网站免费获得。