www.pudn.com > j2me-jianhun.rar > SA.java


import javax.microedition.rms.*; 
import java.lang.String; 
import java.io.*; 
public class SA 
{ 
	RecordStore sa=null;//定义临时数据存储器 
	byte[] tempdata;//临时存储数据的字节 
	SA() 
	{ 
	} 
	//检测暂存数据库是否打开 
	public  boolean tO() 
	{ 
		boolean o=false; 
		try 
		{ 
			sa=RecordStore.openRecordStore("temp",true); 
			RecordEnumeration re=sa.enumerateRecords(null,null,false); 
			if(re.hasNextElement()) 
			o=true; 
			else 
			o=false; 
			close(); 
		} 
		catch(RecordStoreException rse) 
		{ 
		} 
		return(o); 
	}	 
	//保存暂存数据 
	public void s() 
	{ 
		int i; 
		tempdata=new byte[35];		 
		try 
		{			 
			tempdata[0]=(byte)(GM.mgc.l>>8&0xff); 
			tempdata[1]=(byte)(GM.mgc.l&0xff); 
			tempdata[2]=(byte)(GM.mgc.m>>8&0xff); 
			tempdata[3]=(byte)(GM.mgc.m&0xff); 
			tempdata[4]=(byte)(GM.mgc.le); 
			tempdata[5]=(byte)(GM.mgc.sp); 
			tempdata[6]=(byte)(GM.mgc.ex>>16&0xff); 
			tempdata[7]=(byte)(GM.mgc.ex>>8&0xff); 
			tempdata[8]=(byte)(GM.mgc.ex&0xff); 
			tempdata[9]=(byte)(GM.mgc.gold>>8&0xff); 
			tempdata[10]=(byte)(GM.mgc.gold&0xff); 
			tempdata[11]=(byte)((GM.mgc.task2?4:0)+(GM.mgc.task?2:0)+(GM.mgc.boat?1:0)); 
			tempdata[12]=(byte)(((GM.mgc.dlg[0]?1:0)<<6&0xff)+((GM.mgc.dlg[1]?1:0)<<5&0xff) 
			+((GM.mgc.dlg[2]?1:0)<<4&0xff)+((GM.mgc.dlg[3]?1:0)<<3&0xff)+((GM.mgc.dlg[4]?1:0)<<2&0xff) 
			+((GM.mgc.dlg[5]?1:0)<<1&0xff)+((GM.mgc.dlg[6]?1:0)&0xff)); 
			for(i=0;i<11;i++) 
			tempdata[13+i]=(byte)(GM.mgc.s[i]); 
			for(i=0;i<5;i++) 
			tempdata[24+i]=(byte)(GM.mgc.tn[i]); 
			for(i=0;i<6;i++) 
			tempdata[29+i]=(byte)(GM.mgc.weapon[i]);														 
			if(tO()) 
			{ 
				d(); 
				sa=RecordStore.openRecordStore("temp",true); 
				sa.addRecord(tempdata,0,tempdata.length);	 
				close(); 
			} 
			else 
			{ 
				sa=RecordStore.openRecordStore("temp",true); 
				sa.addRecord(tempdata,0,tempdata.length); 
				close(); 
			} 
			tempdata=null;		 
		} 
		catch(java.lang.NullPointerException npe) 
		{ 
		} 
		catch(javax.microedition.rms.RecordStoreException rec) 
		{ 
		} 
	} 
	//读入暂存数据 
	public void r() 
	{ 
		int i; 
		try 
		{ 
			System.out.println("in1"); 
			sa=RecordStore.openRecordStore("temp",true); 
			tempdata=new byte[35];			 
			RecordEnumeration re=sa.enumerateRecords(null,null,false); 
			int nx=re.nextRecordId(); 
			tempdata=sa.getRecord(nx); 
			GM.mgc.l=(tempdata[0]<<8&0xff00)+(tempdata[1]&0xff); 
			GM.mgc.m=(tempdata[2]<<8&0xff00)+(tempdata[3]&0xff); 
			GM.mgc.le=tempdata[4]&0xff; 
			GM.mgc.sp=tempdata[5]&0xff; 
			GM.mgc.ex=(tempdata[6]<<16&0xff0000)+(tempdata[7]<<8&0xff00)+(tempdata[8]&0xff); 
			GM.mgc.gold=(tempdata[9]<<8&0xff00)+(tempdata[10]&0xff); 
			GM.mgc.task2=(tempdata[11]>>2&0x00000001)==1?true:false; 
			GM.mgc.task=(tempdata[11]>>1&0x00000001)==1?true:false; 
			GM.mgc.boat=(tempdata[11]&0x00000001)==1?true:false; 
			for(i=0;i<7;i++) 
			GM.mgc.dlg[i]=(tempdata[12]>>(6-i)&0x00000001)==1?true:false; 
			for(i=0;i<11;i++) 
			GM.mgc.s[i]=tempdata[13+i]&0xff; 
			for(i=0;i<5;i++) 
			GM.mgc.tn[i]=tempdata[24+i]&0xff; 
			for(i=0;i<6;i++) 
			GM.mgc.weapon[i]=tempdata[29+i]; 
			tempdata=null; 
			close(); 
		} 
		catch(Exception rse) 
		{ 
			System.out.println(rse.toString()); 
		}					 
	}		 
	//删除数据库纪录 
	public void d() 
	{ 
		try 
		{ 
			RecordStore.deleteRecordStore("temp"); 
		} 
		catch(RecordStoreException e) 
		{ 
			System.err.println(e.getMessage()); 
		}		 
	}									        		 
        //关闭数据库(每次打开数据库使用后要及时关闭数据库,避免删除数据库操作出错) 
   	public void close() 
    	{ 
		try  
		{ 
	 		if(sa!=null) 
	 	    	{ 
				sa.closeRecordStore(); 
	 	    	}		 
		}  
		catch (RecordStoreException ex)  
		{ 
		} 
    	}		 
}