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;
}
}
レベルとスコアを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();
ただし、データを読み取ることはできません。