具有未知数据类型的Berkeley DB元组

时间:2011-02-25 05:04:16

标签: java berkeley-db

我正在使用Berkeley数据库(使用Java)。我需要读取一个元组,其中序列是一个字符串,可以是int或long,然后是另一个字符串。如何确定元组是持有int还是long?根据元组的含义,我将执行以下操作之一:

String s1 = input.readString();
int num1 = input.readInt();
String s2= input.readString();

or

String s1 = input.readString();
long num1 = input.readLong();
String s2= input.readString();

int是4个字节,long是8个字节。如果元组持有一个int并且我将其读入为long,则会得到一个无效值,因为它将后续字符串的4字节int + 4字节转换为long。

1 个答案:

答案 0 :(得分:1)

您可能想在Berkeley DBBerkeley DB Java Edition论坛上提出此问题,具体取决于您使用的是哪个库。此外,您可能希望指定要使用的API:键值对,Java集合或直接持久层。这将有助于更好地了解是否有任何方法可以确定记录结构的外观。

例如,如果您使用的是键值对API,则记录中不包含“编码”或“架构”。调用应用程序可以知道记录的结构是什么样的。

Java Collections和Direct Persistence Layer API确实有一些记录的概念。您可能会发现Java Collections Tutorial有用,以及产品下载中包含的Java examples