📄 rms.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 + -