在Java中,在文件中存储字符串的键值对的最佳方式是什么,它是可伸缩的(可以处理大量的键值对,即在访问时不读取或写入整个文件),但又尽可能轻量级?
我之所以这样问,是因为即使是最轻量级的数据库库,如SQLite和H2,对于这个目的来说也显得有些矫饰,甚至不可能用于ME程序(尽管目前我主要需要将其用于SE程序)。
发布于 2011-10-08 01:19:37
Oracle BerkeleyDB java edition允许您存储键值对象,它易于使用和管理,并且可扩展到天堂(或更高)。在820k时并不是很大。
但是,如果您正在考虑缩减到j2me,您可以尝试TinySQL
优点:
缺点:
的一小部分。
发布于 2011-10-08 00:41:57
对于一组静态的键-值对,我们会想到Dan Bernstein的cdb。引用cdb的描述:
云数据库是一个快速、可靠、简单的创建和读取常量数据库的软件包。它的数据库结构提供了几个功能:
cdb设计用于电子邮件等任务关键型应用程序。数据库替换对于系统崩溃是安全的。在重写过程中,读者不必停顿。
看起来在http://www.strangegizmo.com/products/sg-cdb/上有一个带BSD许可证的Java实现。
发布于 2011-10-08 00:43:46
显而易见,最初的想法是使用属性,因为这些都是流式的,但它们最终是完全加载的。你也不能部分地读取缓冲的集合。
考虑到这一点,你可以看到这个额外的SO响应。这指的是在流中导航(尽管不完美),以便您可以重新定位您的读取内容:
changing the index positioning in InputStream
使用单独的索引(例如按初始字符),您可以智能地重新定位流中的光标。
https://stackoverflow.com/questions/7690118
复制相似问题