因为RecordStore在删除一条纪录后,纪录的位置仍然保留,并不会自动紧凑。这可能也是sun为了效率而故意做成这样的。不过在我们进行记录的删除操作时,实在是太不方便了。因为很难计算出记录的RecordID。
下面是我封装的一个方法,让RecordStore自动紧凑。
public void delete(String recordName,int recordIndex){
recordDB.open("recordName");
recordDB.deleteRecord(recordIndex);
int tempRecordCount = recordDB.getNumRecords()+1;
RecordDB tempRecordDB = new RecordDB();
tempRecordDB.open("newsLoader");
for(int i = 1;i <=tempRecordCount;i++){
if(i != NewsContentCanvas.tempIndex+1){
String tempString = recordDB.getRecordAndID(i);
tempRecordDB.addRecord(tempString.substring(0,tempString.indexOf("*")),Integer.parseInt(tempString.substring(tempString.indexOf("*")+1)));
}
}
recordDB.close();
RecordDB.deleteStore("picturesRecord");
recordDB.open("picturesRecord");
for(int i = 1;i <=tempRecordDB.getNumRecords();i++){
String tempString = tempRecordDB.getRecordAndID(i);
recordDB.addRecord(tempString.substring(0,tempString.indexOf("*")),Integer.parseInt(tempString.substring(tempString.indexOf("*")+1)));
}
recordDB.close();
tempRecordDB.close();
RecordDB.deleteStore("newsLoader");
}
分享到:
相关推荐
- 存储单词:每个单词及其相关信息(例如,词义、例句等)可以被封装成一个数据记录,然后存入RecordStore中。 - 记录管理:RecordStore提供了按ID查找、删除特定记录以及遍历所有记录的功能,便于用户浏览和管理...
- 获取RecordStore信息:`RecordStore.getSize()` 返回RecordStore的大小(以字节计),`RecordStore.getNumRecords()` 返回记录总数。 - 关闭RecordStore:使用 `RecordStore.closeRecordStore()` 释放资源并确保...
这段代码演示了如何创建一个`RecordStore`实例,并获取其各种属性信息。通过这些信息,我们可以更好地理解和管理我们的数据存储。例如,通过检查`getLastModified()`方法返回的时间戳,我们能够确定何时对记录库进行...
可以使用 `RecordStore.addRecord(byte[] recordData, int offset, int length)` 添加新记录,或者使用 `RecordStore.setRecord(int recordId, byte[] recordData, int offset, int length)` 更新现有记录。...
本文提出了一种基于 RecordEnumeration 接口的记录遍历方法,用于解决 Java ME 中 RecordStore 记录存储中的记录 RecordID 断号问题。该方法通过遍历 RecordStore 记录存储中的所有记录,实现了对 RecordStore 记录...
RecordStore的用法,里面具体介绍了如何使用RecordStore
提供的文件"RMS开源类示例.doc"可能包含了一个或多个封装RMS操作的类示例,这些示例可能演示了如何创建RecordStore、写入记录、执行查询等功能。"RMS操作封装.rar"可能是一个包含完整源代码的压缩包,你可以解压并...
- 更新记录涉及到获取记录的现有字节数组,修改其内容,然后使用`RecordStore.setRecord()`方法替换原有的记录。这种方法会覆盖原有数据。 6. **删除记录**: - 删除记录是通过调用`RecordStore.deleteRecord()`...
RecordStore 可以创建、读取、更新和删除记录,这些记录通常以键值对的形式存在。 1. **RecordStore 的创建和打开**: - `RecordStore` 类的 `openRecordStore(String recordStoreName, boolean createIfNecessary...
如果RecordStore不存在且`createIfNecessary`参数为true,系统会自动创建。 3. **添加记录**:在RecordStore中添加数据是通过创建一个包含数据的byte数组,然后调用`RecordStore.addRecord(byte[] recordData, int ...
2. **记录修改**:一旦记录被创建,可以通过RecordStore的`setRecord()`方法更新其内容。在MobileMemo中,`show`命令可能用于查看并编辑已有的Memo。 3. **记录排序**:J2ME中的RecordStore不支持内置的排序功能,...
我们可以将这些信息封装成一个类,例如`Contact`,然后将其序列化为字节数组,以存入RMS。 4. **添加记录**(增):使用`RecordStore.addRecord(byte[] recordData, int offset, int length)`方法向RecordStore中...
下面是一段简单的示例代码,展示如何使用RecordStore储存电话记录(请注意,实际代码需要适应具体设备和API): ```java import javax.microedition.rms.RecordStore; import javax.microedition.rms....
使用RMS框架时,开发者首先需要创建一个RecordStore实例,并指定其名称和初始记录数。然后,可以调用RecordStore的addRecord方法添加新记录,updateRecord方法更新已存在的记录,以及deleteRecord方法删除记录。此外...
当接收到新短信时,将其作为新的记录添加到 RecordStore;发送短信时,可以从 RecordStore 中读取待发送的信息。 总结,J2ME RMS 是一个强大的工具,用于在移动设备上进行数据管理。理解和熟练使用 RMS 对于开发 ...
首先,让我们详细了解一下单一记录的构造。 单一记录的构造涉及到创建一个数据结构,它代表了存储在 RecordStore 中的单个数据条目。在提供的代码示例中,`Appointment` 类就是这样一个单一记录的实例。它包含了多...
- **更新记录**:更新记录通常涉及先读取记录,修改其内容,然后使用`RecordStore.setRecord(int recordId, byte[] recordData, int offset, int length)`方法替换现有记录。 - **删除记录**:使用`RecordStore....
通过调用`RecordStore.openRecordStore(String recordStoreName, boolean createIfNecessary)`方法可以打开或创建一个记录存储。参数`recordStoreName`是记录存储的名称,而`createIfNecessary`则指明如果指定的记录...
5. **RecordEnumeration**: 提供了一种遍历RecordStore中记录的方法,允许按顺序或随机访问记录。 在郭克华的教程中,可能涵盖了以下关键知识点: - 如何创建和打开RecordStore。 - 插入、读取、更新和删除Record...
实用J2ME记录库工具类,在很多代码中都要用到