遍历所有 RecordStore java me

Posted

技术标签:

【中文标题】遍历所有 RecordStore java me【英文标题】:Iterate through all RecordStore java me 【发布时间】:2012-10-18 06:15:17 【问题描述】:

如何遍历 j2me 应用程序的所有记录存储区?

记录存储是由用户在输入一些数据时创建的。 所以记录库的数量不在我的控制范围内。

那么应用程序是否会跟踪与 j2me 应用程序关联的所有记录存储? 或者我应该创建一个包含所有其他记录存储名称的记录存储吗?

我可以使用

从记录库中获取所有行
for(int i=1;i<=getnumrecords(RecordStoreName);i++)
RecordStoreName.getrecord(i);

但我正在寻找这样的功能来获取与我的应用关联的所有记录存储名称。

我在一个记录存储中创建一个新的 RecordStore 而不是一个新行的原因是因为 java me中recordstore的大小受手机限制。

所以我决定为我从表单中获得的每一个数据创建一个新的记录存储。

【问题讨论】:

【参考方案1】:

如果您的用户可以从RecordStore 中删除条目,您的循环可能会因为调用getRecord 时出现InvalidRecordIDException 而中断。 一种更安全的迭代记录的方法是使用RecordEnumeration

RecordEnumeration re = RecordStoreName.enumerateRecords(null, null, false);

while (re.hasNextElement()) 
    RecordStoreName.getrecord(re.nextRecordId());

cmets 后更新

您可以使用static 方法listRecordStores。根据 API:

返回 MIDlet 拥有的记录存储名称的数组 套房。请注意,如果 MIDlet 套件没有任何记录存储, 此函数将返回 null。 RecordStore 名称的顺序 返回取决于实现。

【讨论】:

不,我说的是处理 RecordStore 而不是 RecordStore 的记录。在示例中,我展示了我可以处理 Recordstore 的记录,但我想知道如何处理 RecordStores,就像我们处理记录一样。【参考方案2】:

此功能是通过RecordStore.listRecordStores API 为应用程序开发人员提供的:

返回 MIDlet 套件拥有的记录存储名称的数组。请注意,如果 MIDlet 套件没有任何记录存储,则此函数将返回 null。返回的 RecordStore 名称的顺序取决于实现...

【讨论】:

以上是关于遍历所有 RecordStore java me的主要内容,如果未能解决你的问题,请参考以下文章

您如何在 Netbeans 中清除您的 midlet 的 RecordStore?

J2ME 中 .db 文件中的 RecordStore 名称更改和空值

J2ME RecordStore 中的数据不会跨会话保持不变

J2ME - 在添加记录时直接从 RecordStore 读取或将记录存储在 Vector 中,稍后从该向量中检索它们

reads k-mer scaffold 知乎

关于K-mer