📄 rmssaver.java
字号:
import javax.microedition.rms.*;
import java.io.*;
public class RmsSaver
{
private String dbname = "db_oobooksv1_0";
private RecordStore rs = null;
private static int rmsDataNum = 0;//自定义数据个数
public RmsSaver(int rmsDataNum)
{
try
{
this.rmsDataNum = rmsDataNum;
rs = RecordStore.openRecordStore(dbname,true);
//System.out.println(rs.getNumRecords()+"+"+rs.getNextRecordID());
int nextRecordIdToAdded = rs.getNextRecordID();
if(nextRecordIdToAdded != rmsDataNum+1 || rs.getNumRecords() != rmsDataNum)
{
rs = RecordStore.openRecordStore(dbname,true);
try
{
for(int i=0;i<nextRecordIdToAdded;i++)
{
deleteData(i+1);
}
}catch(Exception e){}
try
{
for(int i=0;i<rmsDataNum;i++)
{
addData("..");//自定义数据初始化
}
}catch(Exception e){}
}
//System.out.println(rs.getNumRecords()+"+"+rs.getNextRecordID());
}catch(Exception e){}
}
public void addData(String data)
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(data);
byte[] b=baos.toByteArray();
rs.addRecord(b,0,b.length);
baos.close();
dos.flush();
}catch(Exception ex){}
}
public void setData(String[] dataArr)
{
try
{
if(dataArr.length == rmsDataNum)
for(int i=0;i<rmsDataNum;i++)
setData(i+1,dataArr[i]);
}
catch(Exception e){}
}
public void setData(int id,String data)
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(data);
byte[] b=baos.toByteArray();
rs.setRecord(id,b,0,b.length);
baos.close();
dos.flush();
}
catch(Exception e){}
}
public String[] getData()
{
String tmp[]=new String[rmsDataNum];
int x=0;
try
{
RecordEnumeration re = rs.enumerateRecords(null,null,true);
while(re.hasNextElement())
{
re.nextRecord();
ByteArrayInputStream bais=new ByteArrayInputStream(rs.getRecord(x+1));
DataInputStream dis=new DataInputStream(bais);
tmp[x]=dis.readUTF();
x++;
}
}catch(Exception e){}
return tmp;
}
public int getSize()
{
try
{
return rs.getNumRecords();
}catch(Exception e){}
return -1;
}
public RecordStore getRms()
{
return rs;
}
private void deleteData(int id)
{
try
{
rs.deleteRecord(id);
}catch(Exception e){}
}
public void exit()
{
try
{
rs.closeRecordStore();
}catch(Exception e){}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -