我在 J2ME 中做游戏。我想在 RMS 中保存数据级别和分数。这是我的代码 这是 RMSData 类:
public class RMSData {
private static RecordStore rs = null;
static final String REC_STORE = "ReadWriteRMS";
public static void openRecStore(){
try {
rs = RecordStore.openRecordStore(REC_STORE, true);
} catch (Exception e) {}
}
public static void closeRecStore(){
try {
rs.closeRecordStore();
} catch (Exception e) {}
}
public static void deleteRecStore(){
if(RecordStore.listRecordStores()!= null){
try {
RecordStore.deleteRecordStore(REC_STORE);
} catch (Exception e) {}
}
}
public static void writeRecStore(String str){
byte[] rec = str.getBytes();
try {
rs.addRecord(rec, 0, rec.length);
} catch (Exception e) {}
}
public static String readRecStore(){
String kq =null;
try{
byte[] recData = new byte[5];
int len;
if (rs.getNumRecords()==0) return null;
for(int i = 1; i <= rs.getNumRecords(); i++){
if(rs.getRecordSize(i) > recData.length){
recData = new byte[rs.getRecordSize(i)];
}
len = rs.getRecord(i, recData, 0);
if (i==rs.getNumRecords()) kq = new String(recData, 0, len);
}
}catch (Exception e){}
return kq;
}
}
我将 level 和 score 写入 RMS :
RMSData.openRecStore();
RMSData.writeRecStore(String.valueOf(LevelPlay));
RMSData.writeRecStore(String.valueOf(Score));
RMSData.closeRecStore();
然后我读了它:
RMSData.openRecStore();
String st = null;
if(RMSData.readRecStore() == null)
st = "Level : 0"+"Score : 0";
else
st = "Level : "+RMSData.readRecStore()+"Score : "+RMSData.readRecStore();
RMSData.closeRecStore();
但它无法读取数据。