首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

打开RecordStore后,怎么关闭它

2012-03-02 
打开RecordStore后,如何关闭它在接收短信的时候,将接收到的短信存储到RecordStore后,再打开RecordStore读

打开RecordStore后,如何关闭它
在接收短信的时候,将接收到的短信存储到RecordStore后,再打开RecordStore读取记录后却不能再关闭它,调试时出现如下提示:unreachable   statement,错误的位置是下面代码中的第二个rs.closeRecordStore();  


public   void   initfile(String   addr,String   cont){//将接收到的信息储存到RMS中
                  String   fileName   = "mydatabase ";
                          try{
                                  rs   =RecordStore.openRecordStore(fileName,true);  
                                  byte[]   array1   =addr.getBytes();
                                  byte[]   array2   =cont.getBytes();
                                  int   recordID1   =rs.addRecord(array1,0,   array1.length);
                                  int   recordID2   =rs.addRecord(array2,   0,array2.length);
                                  rs.closeRecordStore();
                              }catch(RecordStoreNotOpenException   e){
                                      e.printStackTrace();
                              }catch(RecordStoreException   ex){
                                      ex.printStackTrace();
                              }
      }
     
      public   String[]   getRecordd(){   //读取RMS中的记录
              try{
                      rs   =RecordStore.openRecordStore(fileName,true);
                      RecordEnumeration     re   =rs.enumerateRecords(null,null,false);
                      if(re.numRecords()   <=   0){
                              return   null;
                      }else{
                              String[]   result   =new   String[re.numRecords()];//声明并创建数组
                              int   i=0;
                              while(re.hasNextElement()){
                                      result[i++]   =new   String(re.nextRecord());


                              }
                              return   result;
                      }
                  rs.closeRecordStore();  
              }catch(RecordStoreException   e){
                      e.printStackTrace();
              }catch(NullPointerException   e){
                      e.printStackTrace();
              }
          return   null;
              }

[解决办法]
之所以抱错是因为程序根本走不到rs.closeRecordStore();这一句,前面有return就返回了
正确的做法是这样
public String[] getRecordd(){ //读取RMS中的记录
try{
....
//原来的代码

}catch(RecordStoreException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}
finally{
//关闭放来这里
try {
if(rs != null)
rs.closeRecordStore();
catch(Exception e){
}
}

return null;
}

热点排行