me1*_*123 0 java rms midp java-me
我目前正在做一些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);
}
}
Run Code Online (Sandbox Code Playgroud)
当它到达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)
{
}
}
Run Code Online (Sandbox Code Playgroud)
你不能依赖recordId做任何有用的事情.使用不同的技术重新分配已删除的记录.
| 归档时间: |
|
| 查看次数: |
3404 次 |
| 最近记录: |