📄 savegame.java
字号:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import javax.microedition.rms.RecordStore;
public class SaveGame {
RecordStore rs = null;
GamePlay gp;
byte[] b;
public SaveGame(GamePlay gp) {
this.gp = gp;
}
public void SavaNum() {
try {
RecordStore rs = RecordStore.openRecordStore("rmsName", false);// 打开数据库
// 通过输出流,将所要写入的数据,进行串行化
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
gp.savanum(dos);
byte data[] = baos.toByteArray();
if (data.length == 0) { // 如果所要保存的数据为空,则不保存,直接返回。
rs.closeRecordStore();
return;
} else {
rs.setRecord(1, data, 0, data.length); // 更新 ID=1 的记录
}
// 关闭流
baos.close();
dos.close();
rs.closeRecordStore(); // 关闭数据库
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void readData() { // 读取数据
try {
// 打开数据库
RecordStore rs = RecordStore.openRecordStore("rmsName", false);
byte temp[] = rs.getRecord(1); // 获取 ID =1 的数据,并保存在字节型数组里面
ByteArrayInputStream bais = new ByteArrayInputStream(temp); // 将数据传入输入流,通过输入流来读取
DataInputStream dis = new DataInputStream(bais);
gp.seadnum(dis ,gp.numTemp); // 用 gameplay的数据读取函数来统一管理
// 关闭流
dis.close();
bais.close();
rs.closeRecordStore(); // 关闭数据库
} catch (Exception e) {
System.out.println("RMS 数据读取出错...");
}
}
public final void createRMS() {
try {
rs = RecordStore.openRecordStore("rmsName", true);
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public final void init() { // 加载,并创建数据库
try {
rs = RecordStore.openRecordStore("rmsName", false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
// 如果记录为空,就添加一条记录。以后所更新的数据就是在这个记录上进行 “更改”
if (rs.getNumRecords() == 0) {
dos.writeInt(0);
b = baos.toByteArray();
rs.addRecord(b, 0, b.length);
}
// 关闭流
dos.close();
baos.close();
rs.closeRecordStore();
} catch (Exception e) {
System.out.println("第一次保存失败...");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -