import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreNotFoundException;
public class getRecordMIDlet extends MIDlet implements CommandListener {
private Command exitCommand = new Command("exit", Command.STOP, 1);
private Display display;
public getRecordMIDlet() {
display = Display.getDisplay(this);
}
public void startApp() {
TextBox aTextBox = new TextBox("Main", null, 256, TextField.ANY);
RecordStore rs = null;
boolean existingOrNot = false;
existingOrNot = existing("aRS");
if (existingOrNot) {
try {
rs = RecordStore.openRecordStore("aRS", false);
} catch (Exception e) {
}
} else {
try {
rs = RecordStore.openRecordStore("aRS", true);
} catch (Exception e) {
} finally {
}
}
try {
String record = "";
for (int i = 1; i < rs.getNextRecordID(); i++) {
record = new String(rs.getRecord(i));
}
aTextBox.setString(record);
} catch (Exception e) {
aTextBox.setString("Failed");
try {
rs.closeRecordStore();
RecordStore.deleteRecordStore("aRS");
} catch (Exception x) {
}
}
try {
rs.closeRecordStore();
} catch (Exception e) {
}
aTextBox.addCommand(exitCommand);
aTextBox.setCommandListener(this);
display.setCurrent(aTextBox);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public boolean existing(String recordStoreName) {
boolean existingOrNot = false;
RecordStore rs = null;
if (recordStoreName.length() > 32)
return false;
try {
rs = RecordStore.openRecordStore(recordStoreName, false);
} catch (RecordStoreNotFoundException e) {
existingOrNot = false;
} catch (Exception e) {
} finally {
try {
rs.closeRecordStore();
} catch (Exception e) {
}
}
return existingOrNot;
}
public void commandAction(Command c, Displayable s) {
destroyApp(false);
notifyDestroyed();
}
}
分享到:
相关推荐
本文将详细介绍如何获取一个`RecordStore`实例的各种属性信息,包括最后修改时间、名称、记录数目、大小、剩余空间和版本。 #### RecordStore简介 `RecordStore`类位于`javax.microedition.rms`包中,它是Java ME...
该接口提供了 hasNextElement() 方法和 nextElement() 方法,用于判断是否存在下一个记录和获取下一个记录。 本文的方法可以解决 RecordStore 记录存储中记录 RecordID 断号问题,实现了对 RecordStore 记录存储中...
- 获取所有记录ID:通过 `RecordStore.getAllRecordIds()` 获取RecordStore中所有记录的ID数组。 - 读取记录:使用 `RecordStore.getRecord(long recordId)` 获取指定ID的记录数据。返回的是一个字节数组,开发者...
- 更新记录涉及到获取记录的现有字节数组,修改其内容,然后使用`RecordStore.setRecord()`方法替换原有的记录。这种方法会覆盖原有数据。 6. **删除记录**: - 删除记录是通过调用`RecordStore.deleteRecord()`...
5. **记录查询**:虽然RecordStore不提供复杂查询功能,但可以通过`getRecord()`方法根据记录ID获取特定记录。在MobileMemo中,可能有一个查询功能用于查找特定内容的Memo。 6. **记录删除**:`delete`命令对应...
6. **恢复数据**:当需要读取已储存的电话记录时,执行相反的操作,从RecordStore或文件中恢复数据。 下面是一段简单的示例代码,展示如何使用RecordStore储存电话记录(请注意,实际代码需要适应具体设备和API):...
可以使用`RecordStore.getNumRecords()`获取记录数量,再通过循环调用`RecordStore.getRecord(int recordId)`获取每个记录的内容。 7. **访问模式**:有只读(RecordStore.MODE_READONLY)和读写(RecordStore.MODE...
5. **管理 RecordStore**:还可以执行其他管理操作,如获取 RecordStore 中的记录数量、更新 RecordStore 名称和描述,以及处理 RecordStore 的同步和权限。 6. **关闭 RecordStore**:在完成所有操作后,确保调用 ...
要读取记录,可以先获取记录 ID,然后使用 `RecordStore.getRecord(int recordId)` 获取记录的字节数组。如果需要将字节数据转换为可读格式,例如字符串或对象,需要进行适当的解码。 5. **封装 RMS 类** 封装 ...
6. **更新记录**(改):如果需要修改某个记录,可以先使用`RecordStore.getRecord(int recordId)`获取原始数据,修改后,再用`RecordStore.setRecord(int recordId, byte[] newRecordData, int offset, int length)...
5. **更新记录**:首先获取记录的ID,然后使用`setRecord()`方法更新记录。更新操作也是原子性的。 ```java int recordId = ...; // 获取记录ID String updatedAppt = "updated record"; byte updatedBytes[] =...
- **读取记录**:使用 `RecordStore.getRecord(int recordId)` 获取指定 ID 的记录。 - **更新记录**:使用 `RecordStore.setRecord(int recordId, byte[] data, int offset, int length)` 更新现有记录。 - **...
- **步骤2**:从`IndexEntry`中获取记录ID号。 - **步骤3**:根据ID号获取另一个RecordStore中的记录。 ##### 4. 提高性能 - **缓存机制**:在应用程序启动时读取所有的`IndexEntry`到内存中的`Vector`中,以提高...
- **读取记录**:通过`RecordStore.getRecord(int recordId)`方法获取指定ID的记录内容。 - **更新记录**:使用`RecordStore.setRecord(int recordId, byte[] recordData, int offset, int length)`方法更新已存在...
- 各种getter方法:获取记录中的各个字段值。 这样的设计使得记录的创建和管理变得非常简单和直观。 ##### 2. RecordStore的使用和操作 RecordStore是RMS的核心组件,用于存储和管理记录。RecordStore可以理解为...
3. 读取记录:通过 `RecordStore.getRecord(int recordId)` 获取指定ID的记录,返回的是字节数组,然后你可以用这个数组调用 `Appointment` 类的 `initAppointment()` 来还原对象。 4. 删除记录:使用 `RecordStore...
- `getSizeAvailable()`: 获取记录存储中剩余的可用空间。 - `getRecordSize(int recordId)`: 获取记录的大小。 - `getName()`: 获取记录存储的名称。 通过这些方法,开发者能够创建自定义的逻辑来存储和管理应用...
2. `RecordEnumeration`:提供了遍历`RecordStore`中所有记录的接口,类似于迭代器。 **二、创建RecordStore** 在J2ME电话本应用中,首先需要创建一个`RecordStore`来存储联系人信息。这通常涉及以下步骤: 1. ...
此外,还可以检查空间、获取记录数量、获取记录大小等。RMS提供了一套全面的API来管理存储在移动设备上的数据。 在实际开发中,开发者需要根据需求选择合适的数据结构(如字符串、字节数组或自定义对象序列化)来与...
3. **读取记录**:通过`getRecord(int recordId)`获取指定ID的记录,返回的是一个字节数组,需要自己解析。 4. **更新记录**:使用`setRecord(int recordId, byte[] recordData, int offset, int length)`方法更新...