面向对象的RMS操作

来源:互联网 发布:淘宝模板上传宝贝图 编辑:程序博客网 时间:2024/04/30 20:44
将需要保存的数据集中起来形成一个model类,并且要实现序列化,比如:
import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;public class LoginInfo{String name;String passowrd;boolean selected;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassowrd() {return passowrd;}public void setPassowrd(String passowrd) {this.passowrd = passowrd;}public boolean isSelected() {return selected;}public void setSelected(boolean selected) {this.selected = selected;}public byte[] serialize(){ByteArrayOutputStream bos=null;DataOutputStream dos=null;try {bos=new ByteArrayOutputStream();dos=new DataOutputStream(bos);dos.writeUTF(this.getName());dos.writeUTF(this.getPassowrd());dos.writeBoolean(this.isSelected());dos.flush();return bos.toByteArray();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(dos!=null)dos.close();if(bos!=null)bos.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return null;}public LoginInfo deserialize(byte[] data){LoginInfo instance=new LoginInfo();ByteArrayInputStream bis=new ByteArrayInputStream(data);DataInputStream dis=new DataInputStream(bis);try {instance.setName(dis.readUTF());instance.setPassowrd(dis.readUTF());instance.setSelected(dis.readBoolean());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(dis!=null)dis.close();if(bis!=null)bis.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return instance;}}


操作RMS类
import javax.microedition.rms.RecordStore;import javax.microedition.rms.RecordStoreException;import javax.microedition.rms.RecordStoreFullException;import javax.microedition.rms.RecordStoreNotFoundException;public class RmsLoginInfo {static String rmsName="loginInfo";public void writeRecordStore(LoginInfo loginInfo){try {RecordStore rs=RecordStore.openRecordStore(rmsName,true);byte[] data=loginInfo.serialize();if(rs.getNumRecords()==0)rs.addRecord(data,0,data.length);elsers.setRecord(1,data,0,data.length);rs.closeRecordStore();//System.out.println("保存成功");} catch (RecordStoreFullException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RecordStoreNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RecordStoreException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public LoginInfo readRecordStore(){LoginInfo loginInfo=new LoginInfo();try {RecordStore rs=RecordStore.openRecordStore(rmsName,true);if(rs.getNumRecords()==0){//System.out.println("没有记录");rs.closeRecordStore();return null;}else{byte[] data=rs.getRecord(1);rs.closeRecordStore();return loginInfo.deserialize(data);;}} catch (RecordStoreFullException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RecordStoreNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RecordStoreException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}// 删除表public static void deleteRecordStore(){try {//System.out.println("记录被删除");RecordStore.deleteRecordStore(rmsName);} catch (RecordStoreNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RecordStoreException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


用法:
//读取记录,通常初始化的时候使用RmsLoginInfo rms=new RmsLoginInfo();LoginInfo loginInfo=rms.readRecordStore();if(loginInfo!=null){//这里可以对一些参数赋值}else{//}//保存用户名和密码if(selected){LoginInfo loginInfo=new LoginInfo();loginInfo.setName(Consts.field0);loginInfo.setPassowrd(Consts.field1);loginInfo.setSelected(selected);RmsLoginInfo rms=new RmsLoginInfo();rms.writeRecordStore(loginInfo);}else{RmsLoginInfo.deleteRecordStore();}
0 0
原创粉丝点击