⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scorerecordstore.java

📁 j2me源代码
💻 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 + -