から取得した512レコードのRMSがあります
rs.getNumRecords();
しかし、私がレコードを使用しようとすると、getRecordId(i)
または使用している場合でも
rs.enumerateRecords( null, null, false );
InvalidRecordIDException
1から180までのレコードについて、を取得し、181インデックスからオンワードまでのレコードを読み取ることができます。
アプリケーションのどこにもレコードを削除していません。
処理中(この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);
}