我有一个 RMS 检索自 512 条记录
rs.getNumRecords();
但是当我尝试使用getRecordId(i)
或即使使用 读取记录时
rs.enumerateRecords( null, null, false );
我得到InvalidRecordIDException
, 对于从 1 到 180 的记录,并且我能够读取从 181 索引到 onwords 的记录。
我不会删除应用程序中任何地方的记录。
在处理(读取此 RMS)和覆盖应用程序之间存在退出应用程序的实例。
在读取记录时,我在 try 块的末尾关闭了 RMS。
是否有任何可能的原因导致 RMS 损坏或特定索引损坏?
使用 getRecord 读取 RMS 的代码是
try {
RecordStore rs = RecordStore.openRecordStore(getTableName(), true);
ByteArrayInputStream inputStream = null;
DataInputStream inputDataStream = null;
int nor = rs.getNumRecords();
for(int i=1;i<=nor;i++)
{
System.out.println("i : "+i);
_recordByteArr = rs.getRecord(i);
inputStream = new ByteArrayInputStream(_recordByteArr);
inputDataStream = new DataInputStream(inputStream);
System.out.println("val at " + i + " ::" + new String(_recordByteArr));
//used inputDataStream.readUTF() here
}
if (inputDataStream != null) {
inputDataStream.close();
}
if (inputStream != null) {
inputStream.close();
}
rs.closeRecordStore();
} catch (Exception e) {
System.out.println("exp in read fieldtxn :" + e);
}