gpt4 book ai didi

java - 在 Java J2ME 中使用 RecordStore

转载 作者:行者123 更新时间:2023-12-01 07:42:23 25 4
gpt4 key购买 nike

我目前正在做一些 J2ME 开发。我遇到的问题是,用户可以向记录存储添加和删除元素,如果一条记录被删除,则该记录将保留为空,其他记录不会向上移动。我试图提出一个循环来检查记录中是否有任何内容(如果它已被删除),如果有,那么我想将该记录的内容添加到列表中。我的代码类似于如下:

      for (int i = 1; i <= rs.getNumRecords(); i++)
{
// Re-allocate if necessary

if (rs.getRecordSize(i) > recData.length)
recData = new byte[rs.getRecordSize(i)];
len = rs.getRecord(i, recData, 0);
st = new String(recData, 0, len);
System.out.println("Record #" + i + ": " + new String(recData, 0, len));
System.out.println("------------------------------");
if(st != null)
{
list.insert(i-1, st, null);
}

}

当到达 rs.getRecordSize(i) 时,我总是收到“javax.microedition.rms.InvalidRecordIDException:查找记录时出错”。我知道这是因为记录为空,但我想不出解决这个问题的方法。

任何帮助将不胜感激。

提前致谢。

最佳答案

您应该使用 RecordEnumeration 来访问记录:

RecordEnumeration renum = rs.enumerateRecords(null, null, false);
while (renum.hasNextElement())
{
int index = renum.nextRecordId();
if (store.getRecordSize(index) == STORE_LEN)
{

}
}

您不能依赖 recordId 来获得任何有用的信息。使用不同的技术重新分配已删除的记录。

关于java - 在 Java J2ME 中使用 RecordStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2493648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com