`

J2ME的RMS读写实现

阅读更多

以下代码出自http://blog.csdn.net/hellogv/,引用请注明出处!

在实现RMS的读写前,首先要注意RMS对汉字不兼容,为了解决这个这个首要问题,首先要编写以下两个成员函数:

public byte[] StringtoBytes(String Str) { //写成字节

byte[] STB = null;

try {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

DataOutputStream dos = new DataOutputStream(baos);

dos.writeUTF(Str);

STB = baos.toByteArray();

baos.close();

dos.close();

} catch (Exception e) {

e.printStackTrace();

}

return STB;

}



public String BytesToString(byte[] rec) { //从字节读取内容

ByteArrayInputStream bais = new ByteArrayInputStream(rec);

DataInputStream dis = new DataInputStream(bais);

String BTS=null;

try {

BTS=dis.readUTF();

bais.close();

dis.close();

} catch (Exception e) {

e.printStackTrace();

}

return  BTS;

}

//有上面的成员函数,接下来,就可以实现RMS的读写:

public String Read()//返回值就是上次保存的记录

   { try{

         rms=RecordStore.openRecordStore("XXXX",true,RecordStore.AUTHMODE_ANY,true);//XXXX就是记录集合

           int   NumberTotal =rms.getNumRecords();

           if (NumberTotal==0)//当记录到的电话号码数量为零

            return "";//返回空字符

           return BytesToString(rms.getRecord(1));//这里只读取一个记录

                  }

                  catch(Exception e){ return "";} //失败,没有读取任何信息

   }

public String Save(String Number)//保存Numb



{

 try{

      rms=RecordStore.openRecordStore("XXXX",true,RecordStore.AUTHMODE_ANY,true);//XXXX就是记录集合

      byte[] data = StringtoBytes(Number);//--------------以下只新建一条记录或者只修改一条记录

      if (rms.getNumRecords()==0)//没有任何记录

       rms.addRecord(data, 0, data.length);//创建记录

      if(rms.getNumRecords()==1)//只有当前一个记录

          rms.setRecord(1,data, 0, data.length);//修改记录

     rms.closeRecordStore();//--------------以上只新建一条记录或者只修改一条记录

     return "成功替换原号码\n新号码保存成功!";

    }

   catch(Exception e){

   try{

       rms.closeRecordStore();

       }

     catch(Exception ee){}}

return "不能保存新号码!";

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics