我也是刚学,给新手用吧,代码有一些也是别人的,不足的地方自己改进一下啦.这样操作RMS方便多了.
老鸟会写出更好的东西的.
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream;
import javax.microedition.rms.RecordStore;
public class rms {
private rms() { super(); // TODO 自动生成构造函数存根 } //单例模式 static rms inirms=null; public static rms iniRms() { if(inirms==null) { inirms=new rms(); } return inirms; } 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; }
RecordStore rms; public String Read(String name)//返回值就是上次保存的记录 { try{ rms=RecordStore.openRecordStore(name,false,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 name,String Number)//保存Numb
{ try{ rms=RecordStore.openRecordStore(name,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 "添加成功!"; } catch(Exception e){ try{ rms.closeRecordStore(); } catch(Exception ee){}} return "不能保存!"; } } |