在實現RMS的讀寫前,首先要留心RMS對漢字不兼容,為懂得決這個這個重要標題,首先要編寫以下兩個成員函數:
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;
}
有上面的成員函數,接下來,就可以實現RMS的讀寫:
public String Read()// 返回值就是上次保留的記錄
{
try{
rms=RecordStore.openRecordStore("XXXX",true,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 Number)// 保留Numb
{
try{
rms=RecordStore.openRecordStore("XXXX",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 "成功調換原號碼\n新號碼保留成功!";
}
catch(Exception e){
try{
rms.closeRecordStore();
}
catch(Exception ee){}}
return "不能保留新號碼!";
}