📄 rms_ex6.java
字号:
//程序名RMS_Ex6.java,项目RMS_Ex6
//测试RecordEnumeration的基本操作
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
public class RMS_Ex6 extends MIDlet {
RecordStore rs = null;
public RMS_Ex6() {
//这个例子需要使用一个新的记录存储进行测试,所以要删除旧的文件。
try {
RecordStore.deleteRecordStore("rs_test");
} catch( Exception e ){
// ignore any errors...
}
//生成一个新的记录存储rs_test,并添加测试数据:
try {
rs = RecordStore.openRecordStore("rs_test", true );
byte[][] testData = new byte[][] {
"one".getBytes(),
"two".getBytes(),
"three".getBytes(),
"four".getBytes(),
"five".getBytes(),
"six".getBytes(),
};
for (int i = 0;i<testData.length;i++) {
rs.addRecord(testData[i], 0, testData[i].length);
}
} catch( Exception e ){
System.out.println("error when build a test case.");
notifyDestroyed();//发生错误,关闭应用程序
}
}
public void startApp() {
try {
//测试RecordEnumeration的基本操作
RecordEnumeration enum = rs.enumerateRecords(null,null,false);
//生成enum后,当前指针处于未定义状态
System.out.println("** a new RecordEnumeration created.");
System.out.println("numRecords(): "+enum.numRecords()+" ==> rs.getNumRecords() : "+rs.getNumRecords());
System.out.println("hasNextElement(): "+enum.hasNextElement());
System.out.println("hasPreviousElement(): "+enum.hasPreviousElement());
//当前指针移动到第一个元素
System.out.println("nextRecord(): "+new String(enum.nextRecord()));
try {
System.out.println("hasPreviousElement(): "+enum.hasPreviousElement());
enum.previousRecord();//将会发生错误
} catch (InvalidRecordIDException e) {
System.out.println("error when call previousRecord().");
}
System.out.println("call nextRecordId(): "+enum.nextRecordId());//当前指针移动1个元素
System.out.println("call nextRecord(): "+new String(enum.nextRecord()));//当前指针移动1个元素
while (enum.hasNextElement()) {
System.out.println("while : "+new String(enum.nextRecord()));
}
try { //到达最后一个元素
System.out.println("** at the bottom.");
System.out.println("hasNextElement(): "+enum.hasNextElement());
enum.nextRecord();//将会发生错误
} catch (InvalidRecordIDException e) {
System.out.println("error when call nextRecord().");
}
enum.reset();//重置当前指针
System.out.println("** after reset(): ");
System.out.println("hasNextElement(): "+enum.hasNextElement());
System.out.println("hasPreviousElement(): "+enum.hasPreviousElement());
System.out.println("previousRecordId(): "+enum.previousRecordId());
System.out.println("previousRecord(): "+new String(enum.previousRecord()));
System.out.println("** after one record deleted, and reset:");//测试删除一个记录的情况
rs.deleteRecord(3);
//enum.reset();
enum.rebuild();//
System.out.println("isKeptUpdated: "+enum.isKeptUpdated());//
try {
while (enum.hasNextElement()) {
enum.nextRecord();
}//将会发生错误
} catch (InvalidRecordIDException e) {
System.out.println("error when call nextRecord()/previousRecord() after one record deleted.");
}
rs.closeRecordStore();//测试关闭记录存储后的情况
System.out.println("** after call rs.closeRecordStore(), and reset: ");
try {
enum.reset();
System.out.println("hasNextElement(): "+enum.hasNextElement());
System.out.println("can call nextRecordId(): "+enum.nextRecordId());
System.out.println("can call nextRecord(): "+enum.nextRecord());
} catch (RecordStoreNotOpenException e) {
System.out.println("error when call nextRecord()/previousRecord() after rs closed.");
}
} catch(RecordStoreException e ){
System.out.println("error , program exist.");
notifyDestroyed();//发生错误,关闭应用程序
}
notifyDestroyed();//运行结束即关闭应用程序
}
public void pauseApp() {
}
public void destroyApp( boolean unconditional ) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -