⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rms_ex6.java

📁 J2ME 无线通信技术应用开发源代码
💻 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 + -