Java Micro Edition(J2ME) - 从Record Store中删除元素

时间:2010-04-13 16:46:36

标签: java java-me midp rms

我有一个记录商店,其中包含我目前正在序列化数据的购物项目列表

** (inside) ItemClass **            
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(byteOutputStream);

dataOutputStream.writeUTF(getOwner());
dataOutputStream.writeUTF(getItemName());
dataOutputStream.writeInt(getQuantity());

dataOutputStream.close();

return byteOutputStream.toByteArray();

然后将此字节数组写入记录存储区(对每个id使用for循环)

for (int i = 1; i <= shoppingListStore.getNumRecords(); i++)
{
     byte[] itemRecord = shoppingListStore.getRecord(i);
     newItemObject.fromByteArray(itemRecord);
     userShoppingList.append(newItemObject.getItemName() + " " + newItemObject.getQuantity() + " " + newItemObject.getOwner(), null);
}

问题来自于使用ID来遍历记录存储,因为这可能会因删除等而发生变化,因此我会继续引发无效的id被抛出。我知道我不能使用每个ItemObj:Recordstore所以如何在不必担心id的情况下穿越唱片店呢?

1 个答案:

答案 0 :(得分:2)

致电recordStore.enumerateRecords(null, null, false)

然后使用RecordEnumeration.hasNextElement()RecordEnumeration.nextRecord()