📄 scorerecordstore.java
字号:
package snake;
import java.util.Vector;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreNotFoundException;
import javax.microedition.rms.RecordEnumeration;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
class ScoreRecordStore {
public ScoreRecordStore() {
}
/**
* 存储分数记录
* @param vector Vector 要存储的记录数组
* @param s String RecordStore的名称
*/
public void saveScoreRecord(Vector vector, String s) {
try {
try {
RecordStore.deleteRecordStore(s);
}
catch (RecordStoreNotFoundException rsnfe) {}
//打开存储记录,如果不存在则创建一个
RecordStore recordstore = RecordStore.openRecordStore(s, true);
//用于输出的byte流和数据流
ByteArrayOutputStream bOut;
DataOutputStream dOut;
for (int i = 0; i < vector.size(); i++) {
Record r = (Record) vector.elementAt(i); //获取需要存储的数据记录
byte[] data;
bOut = new ByteArrayOutputStream();
dOut = new DataOutputStream(bOut);
//将数据写入到数据流当中
dOut.writeShort(r.nScore);
dOut.writeUTF(r.name);
//将数据流转换成byte字节流
data = bOut.toByteArray();
//添加存储记录
recordstore.addRecord(data, 0, data.length);
bOut.close();
dOut.close();
}
recordstore.closeRecordStore();
}
catch (Exception ex) {}
}
/**
* 读取分数记录
* @param s String RecordStore的名称
* @return Vector 读取到的分数记录数组
*/
public Vector loadScoreRecord(String s) {
Vector vector = new Vector();
try {
//打开存储记录
RecordStore recordstore = RecordStore.openRecordStore(s, false);
RecordEnumeration recordenumeration = null;
recordenumeration = recordstore.enumerateRecords(null,
new ScoreComparator(), false); //排顺序;
//用于输入的byte字节流和数据流
ByteArrayInputStream bIn;
DataInputStream dIn;
while (recordenumeration.hasNextElement()) {
byte data[];
data = recordenumeration.nextRecord(); //读取存储记录
bIn = new ByteArrayInputStream(data);
dIn = new DataInputStream(bIn);
//从字节流中读取数据
short score = dIn.readShort();
String name = dIn.readUTF();
Record r = new Record(score, name);
vector.addElement(r);
bIn.close();
dIn.close();
}
//释放资源;
if (recordenumeration != null) {
recordenumeration.destroy();
}
recordstore.closeRecordStore();
}
catch (Exception ex) {}
return vector;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -