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

📄 rms_ex7.java

📁 J2ME 无线通信技术应用开发源代码
💻 JAVA
字号:
//程序名RMS_Ex7.java,项目RMS_Ex7
//测试RMS的枚举器、过滤器和比较器
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
import java.util.Calendar;
import java.util.Date;
import java.io.*;

public class RMS_Ex7 extends MIDlet {
  RecordStore rs = null;
  RecordEnumeration enum;
  RecordFilter dateRecordFilter;
  RecordComparator dateRecordComparator;

  public RMS_Ex7() {
    //这个例子需要使用一个新的记录存储进行测试,所以要删除旧的文件。
    try {
      RecordStore.deleteRecordStore("rs_test");
    } catch( Exception e ){
      // ignore any errors...
    }
    //生成一个新的记录存储rs_test,并添加测试数据:
    try {
      rs = RecordStore.openRecordStore("rs_test", true );
      addDateRecord(rs,2002,Calendar.DECEMBER,25);
      addDateRecord(rs,2000,Calendar.OCTOBER,1);
      addDateRecord(rs,1950,Calendar.SEPTEMBER,11);
      addDateRecord(rs,2008,Calendar.JANUARY,11);
      addDateRecord(rs,1984,Calendar.MAY,4);
      
      //构造一个新的过滤器和比较器
      Calendar calendar = Calendar.getInstance();
      calendar.set(Calendar.YEAR,2002);
      calendar.set(Calendar.MONTH,Calendar.AUGUST);
      calendar.set(Calendar.DATE,3);
      dateRecordFilter = new DateRecordFilter(calendar.getTime().getTime()); 
      dateRecordComparator = new DateRecordComparator();
    } catch( Exception e ){
      System.out.println("error when build a test case.");
      notifyDestroyed();//发生错误,关闭应用程序
    }
  }
  
  public void startApp() {
    try {
      System.out.println("***enum = rs.enumerateRecords(null,null,false):");
      enum = rs.enumerateRecords(null,null,false);
      while (enum.hasNextElement()) {
        printDateRecord(enum.nextRecord());
      }
      enum.destroy();

      //测试经过过滤后的结果
      System.out.println("***enum = rs.enumerateRecords(dateRecordFilter,null,false):");
      enum = rs.enumerateRecords(dateRecordFilter,null,false);
      while (enum.hasNextElement()) {
        printDateRecord(enum.nextRecord());
      }
      enum.destroy();

      System.out.println("***enum = rs.enumerateRecords(null,dateRecordComparator,false):");
      enum = rs.enumerateRecords(null,dateRecordComparator,false);
      while (enum.hasNextElement()) {
        printDateRecord(enum.nextRecord());
      }
      enum.destroy();

      System.out.println("***enum = rs.enumerateRecords(dateRecordFilter,dateRecordComparator,false):");
      enum = rs.enumerateRecords(dateRecordFilter,dateRecordComparator,false);
      while (enum.hasNextElement()) {
        printDateRecord(enum.nextRecord());
      }
      enum.destroy();
    } catch(RecordStoreException e ){
      System.out.println("error , program exist.");
      notifyDestroyed();//发生错误,关闭应用程序
    }
    notifyDestroyed();//运行结束即关闭应用程序
  }

  public void pauseApp() {
  }

  public void destroyApp( boolean unconditional ) {
  } 
  
  public void addDateRecord(RecordStore rs, int year, int month, int date) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR,year);
    calendar.set(Calendar.MONTH,month);
    calendar.set(Calendar.DATE,date);
	  try {
	    ByteArrayOutputStream bout = new ByteArrayOutputStream();
      DataOutputStream dout = new DataOutputStream (bout);
      dout.writeLong(calendar.getTime().getTime());
      dout.flush();
      byte[] b = bout.toByteArray();
      rs.addRecord(b, 0, b.length);
    }catch (Exception e) {
      System.out.println(e.getMessage());
      System.out.println("error when add a record.");
    }
  }

  public void printDateRecord(byte[] rec) {
	  try {
      DataInputStream din = 
        new DataInputStream(
          new ByteArrayInputStream(rec));
      din.reset();
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(new Date(din.readLong()));
      System.out.println(calendar);
    }catch (Exception e) {
      System.out.println("error when print date.");
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -