📄 gamerms.java
字号:
//package src;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
public class GameRms {
public String name[]=new String[6];
public int score[]=new int[6];
public String tname[]=new String[5];
public int tscore[]=new int[5];
RecordStore rs;
String dbname="game_top 5";
public GameRms()
{
for (int i=0;i<6;i++)
{
name[i]="No name";
score[i]=0;
}
}
public boolean inTop(int n)
{
for (int i=0;i<5;i++)
{
if (n>score[i]) return true;
}
return false;
}
public void readScore()
{
// int idnum=rs.
try {
rs=openRSAnyway(dbname);
RecordEnumeration re=rs.enumerateRecords(null,null,false);
int recs=re.numRecords();
if (recs>5) recs=5;
for (int i=0;i<recs;i++)
{
decode(re.nextRecord(),i);
}
rs.closeRecordStore();
}
catch (Exception e){}
}
public void writeScore(String n,int s)
{
try{
name[5]=n;
score[5]=s;
for (int k=0;k<5;k++)
{
int j=0;
int ts=score[j];
for (int i=0;i<6;i++)
{
if (ts<score[i])
{
j=i;
// System.out.println("ts "+ts+"<"+score[i]);
ts=score[i];
}
}
tname[k]=name[j];
tscore[k]=score[j];
score[j]=-1;
}
deleteRS(dbname);
rs=openRSAnyway(dbname);
for (int i=4;i>=0;i--)
{
name[i]=tname[i];
score[i]=tscore[i];
byte tmp[]=encode(i);
int id=rs.addRecord(tmp,0,tmp.length);
}
rs.closeRecordStore();
}
catch(Exception e){
}
}
public RecordStore openRSAnyway(String fname)
{
RecordStore rs=null;
if (fname.length()>32) return null;
try{
rs=RecordStore.openRecordStore(fname,true);
return rs;
}
catch(Exception e)
{
return null;
}
}
public boolean deleteRS(String fname)
{
if (fname.length()>32) return false;
try{
RecordStore.deleteRecordStore(fname);
return true;
}
catch(Exception e)
{
return false;
}
}
public byte[] encode(int i) // 写数据
{
byte [] result=null;
try{
ByteArrayOutputStream bos=new ByteArrayOutputStream();
DataOutputStream dos=new DataOutputStream(bos);
dos.writeUTF(name[i]);
dos.writeInt(score[i]);
result=bos.toByteArray();
dos.close();
bos.close();
}
catch( Exception e)
{
e.printStackTrace();
}
return result;
}
public void decode(byte[] data,int i) //读数据
{
try
{
ByteArrayInputStream bis=new ByteArrayInputStream(data);
DataInputStream dis=new DataInputStream(bis);
name[i]=dis.readUTF();
score[i]=dis.readInt();
dis.close();
bis.close();
}
catch(Exception e)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -