J 2 MEの件――RMS―007


MIDPにおけるストレージシステムは、実際にはデータベースに類似したシステムとして実装される.単純なファイルシステムではなく、記録管理システム(Record Management System,RMS)と呼ばれています.
今日はJ 2 ME開発におけるRMSの実用化について解説します.主に次の2点が含まれています.
1、記録記憶API
2、RMSの応用例
 
1、記録記憶API
 
以下にAPIドキュメントを取り込む原形を示す.

javax.microedition.rms Class RecordStore

java.lang.Object
  |
  +--javax.microedition.rms.RecordStore

 
以下に、RecordStoreクラスで一般的に使用されるいくつかの方法を示します.
(1)RecordStoreを開く
RecordStore rs = RecordStore.openRecordStore("MyAppointments",true);
すべての操作が完了すると、closeRecordStore()の呼び出しは、指定された名前のレコードストレージを閉じます.1つのレコードストレージが閉じられている場合、さらなる操作はできません.
(2)RecordStoreを1つ閉じる
rs.closeRecordStore();
(3)RecordStoreを削除
RecordStore.deleteRecordStore("MyAppointments");
(4)レコードを挿入する
String appt = "new record";
byte bytes[] = appt.getBytes();
rs.addRecord(bytes,0,bytes.length);
(5)記録を更新する
String newda = "update record";
Byte data = newda.getBytes();
rs.setRecord(1, data, 0, data.length());
      (6)
レコードを削除
rs.deleteRecord(1);
 
2、RMSの応用例
 
レコードの追加と読み取り
 /**
*RMSを作成
 */
public void openRMS(String rsName){
         try{
                 rs = RecordStore.openRecordStore(rsName, true);//レコードの作成
          } catch(Exception e) {} 
}
/**
*レコードの追加
  */
 public void addRecord(int a)
 {
    try{
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeInt(a);
        byte rec[] = baos.toByteArray();
        baos.close();
        dos.close();
        try{
           rs.addRecord(rec, 0, rec.length);
        }catch(Exception e) { }
     }catch(Exception e) { }
  }
 /**
*リードレコード
  */
 public int readRecord(byte[] data)
 {
     int aa = -1;
     ByteArrayInputStream bais = new ByteArrayOutputStream(data);
     DataInputStream dis = new DataInputStream(bais);
     try{
           aa = dis.readInt();//ストリームからのデータの読み出しは、書き込み順に行う必要があります
           dis.close();
           bais.close();
     }catch(Exception e) { }
     return aa;
}