我也是剛學,給新手用吧,代碼有一些也是別人的,不足的地方自己改進一下啦.這樣操作RMS方便多了.
老鳥會寫出更好的東西的.
import Java.io.ByteArrayInputStream;
import Java.io.ByteArrayOutputStream;
import Java.io.DataInputStream;
import Java.io.DataOutputStream;
import Javax.microedition.rms.RecordStore;
public class rms {
private rms() {
super();
// TODO 自動生成構造函數存根
}
//單例模式
static rms inirms=null;
public static rms iniRms()
{
if(inirms==null)
{
inirms=new rms();
}
return inirms;
}
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;
}
RecordStore rms;
public String Read(String name)//返回值就是上次保存的記錄
{
try{
rms=RecordStore.openRecordStore(name,false,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 name,String Number)//保存Numb
{
try{
rms=RecordStore.openRecordStore(name,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 "添加成功!";
}
catch(Exception e){
try{
rms.closeRecordStore();
}
catch(Exception ee){}}
return "不能保存!";
}
}