游泳

核心技术:J2ME中RMS的使用解析(三)

2019-12-05 04:00:35来源:励志吧0次阅读

publicstaticAppointmentgetRecord(Stringname,intj){//根据记录编号(参数intj)取得一条记录

Appointmentresult=newAppointment();

try{

RecordStorers=RecordStore.openRecordStore(name,false);

RecordEnumerationre=rs.enumerateRecords(null,null,false);

result=newAppointment(rs.getRecord(j));

rs.closeRecordStore();

}catch(Exceptione){

}

returnresult;

}

publicstaticintgetIndex(Stringname,Stringcontent){//得到记录号intj,这里需要使用保留字段str1

RecordStorers=null;

RecordEnumerationre=null;

try{

rs=RecordStore.openRecordStore(name,false);//open

re=rs.enumerateRecords(null,null,false);//enumeration

for(inti=0;i<RMS.getNumOfRecords(name);i++){

intj=re.nextRecordId();

Appointmentapp=newAppointment(rs.getRecord(j));

if(app.getStr1().equals(content)){

returnj;

}

}

}catch(Exceptione){

}

return1;

}

publicstaticbooleansetRecord(Stringname,intid,intint1,intint2,//设置记录号为id的记录

longlong1,Stringstr1,Stringstr2,Stringstr3,booleanb){

booleansuccess=false;

RecordStorers=null;

RecordEnumerationre=null;

try{

rs=RecordStore.openRecordStore(name,false);//open

re=rs.enumerateRecords(null,null,false);//enumeration

Appointmentapp=newAppointment(int1,int2,long1,str1,str2,str3,b);

//str1作为保留字段,在这里如此操作:例如若int1为我们设定的关键字,那么str1=Integer.toString(int1);

byte[]data=app.toBytes();

rs.setRecord(id,data,0,data.length);

success=true;

rs.closeRecordStore();

}catch(Exceptione){

}

returnsuccess;

}

}

在这个类中,我没有将各个Exception向外抛出,一般来说这样作是不合适的,它违背了Java的异常处理机制。但是在我使用这个类的各个J2ME程序中,它是可以胜任的,所以也就没有进行进一步的修改。

有了以上的两个类和你对RMS的理解,在程序中,你就可以顺畅的使用RMS了。

比如在MIDlet开始时,如下操作(增加记录):

protectedvoidstartApp()throwsMIDletStateChangeException{

if(RMS.getNumOfRecords(rsName)==0){//rsName在前面已经声明了。StringrsName=“MyRMS”;

for(inti=0;i<6;i++){

RMS.addRecord(rsName,RMS.Int1,i,RMS.Long1,Integer.toString(i),RMS.Str2,"1234567890123456789",false);

}

}它就在RMS中增加了6条记录,其中int1,long1,str2,WroteFlag都没有使用,我们只是使用int2,str1(作为保留字段)和str3。

}

查看本文来源

金振口服液是西药还是中药
丁桂薏芽健脾吃多久
二岁半宝宝不爱吃饭怎么办
宝宝如何健脾胃
分享到: