⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rms.java

📁 j2me 连连看源代码
💻 JAVA
字号:
import javax.microedition.rms.*;
import java.io.*;

/**
 * 
 * @author pan
 *
 */
public class Rms {

	static RecordStore rs;
	
	static final String name = "llk001";
	
	static int getPayRecord(int payType,int time){
		openRecordStore(name,20,null);
		byte[] data = readData(payType);
		closeRescordStore();
		System.out.println("gettime: "+(data[0]));
		return time - data[0];
	}
	
	static void savePayRecord(int payType,int time){
		System.out.println("savetime: "+time);
		openRecordStore(name,20,null);
		byte[] data = new byte[]{(byte)time};
		saveData(data,payType);
		closeRescordStore();
	}
	
	/**
	 * 打开一个RMS,如果为空,则初始化指定条目的记录
	 * @param name
	 * @param num
	 * @return
	 */
	static void openRecordStore(String name,int num,byte[][] initData){
		try{
			if(rs==null || !rs.getName().equals(name)){
				rs = RecordStore.openRecordStore(name,true);
				if(rs.getNumRecords()==0){
					// 初始化rms
					if(initData==null){
						byte[] size = new byte[]{0};
						for(int i=0;i<num;i++){
							rs.addRecord(size,0,size.length);
						}
					}else{
						for(int i=0;i<num;i++){
							rs.addRecord(initData[i],0,initData[i].length);
						}
					}
				}
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	/**
	 * 读取完rms后马上关闭,释放内存空间
	 *
	 */
	static void closeRescordStore(){
		if(rs!=null){
			try{
				rs.closeRecordStore();
				rs = null;
				System.gc();
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 将byte[]数据保存在当前打开的rms的指定记录位置
	 * @param data
	 * @param recordid
	 */
	static void saveData(byte[] data,int recordid){	
		try{			
			if(rs == null){
				return;
			}
			if(rs.getNumRecords()>0){
				rs.setRecord(recordid,data,0,data.length);
			}
			else{
				rs.addRecord(data,0,data.length);
			}	
		}catch(Exception e){			
			e.printStackTrace();			
		}
	}
		
	/**
	 * 读取当前打开的指定id的记录,返回byte[]
	 * @param recordid
	 * @return
	 */
	static byte[] readData(int recordid){					
		try{			
			if(rs!=null && rs.getNumRecords()>0){				
				byte[] data = rs.getRecord(recordid);				
				return data;				
			}		
		}catch(Exception e){
			e.printStackTrace();		
		}
		return null;
		
	}	
	
	/**
	 * 读取当前打开的指定id的记录,返回DataInputStream
	 * @param recordid
	 * @return
	 */
	static DataInputStream getInputStream(int recordid){
		try{
			byte data[] = readData(recordid);
			return new DataInputStream(new ByteArrayInputStream(data));
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -