六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 301|回复: 0

J2ME的RMS读写实现

[复制链接]

升级  49%

233

主题

233

主题

233

主题

进士

Rank: 4

积分
745
 楼主| 发表于 2013-2-7 06:11:21 | 显示全部楼层 |阅读模式
以下代码出自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 "不能保存新号码!";}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表