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

📄 myrecord.java

📁 是男人就下一百层
💻 JAVA
字号:

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreFullException;
import javax.microedition.rms.RecordStoreNotFoundException;
import javax.microedition.rms.InvalidRecordIDException;
/**
 * 存档文件类
 * @author WuChen
 * 上海协亨
 */
public class myRecord{
	/**
	 * 记录集名
	 */
	private String recordName;
	/**
	 * 记录ID
	 */
	private int recordID;
	/**
	 * 记录内容
	 */
	private Hashtable data = new Hashtable();
	/**
	 * 更新时间
	 */
	private String modifyTime;
	
	public myRecord(){
		
	}
	
	public myRecord(String name,int id){
		this.recordName = name;
		this.recordID = id;
		if(this.checkStore()){
			try {
				RecordStore recordstore = RecordStore.openRecordStore(this.recordName, false);
				String str = new String(recordstore.getRecord(this.recordID),"UTF-8");
				String[] datastr = split(str,"&");
				for (int i =0; i < datastr.length; i ++){
					splitDatastring(datastr[i],"=");
				}
				Date modifyDate = new Date(recordstore.getLastModified());
				modifyTime = modifyDate.toString();
				recordstore.closeRecordStore();
				str = null;
				datastr = null;
				modifyDate = null;
				System.gc();
			}
			catch (RecordStoreFullException e) {
				//记录集存储已满
				e.printStackTrace();
			}
			catch (RecordStoreNotFoundException e) {
				//记录集不存在
				e.printStackTrace();
			}
			catch (InvalidRecordIDException e){
				//记录集对应id不存在
				e.printStackTrace();
			}
			catch (RecordStoreException e) {
				//打开记录集错误
				e.printStackTrace();
			}
			catch (UnsupportedEncodingException e) {
				//byte转换成String错误
				e.printStackTrace();
			}
		}
	}
	
	public void save(){
		this.modifyTime = new Date().toString();
		RecordStore recordstore;
		String val;
		try {
			recordstore = RecordStore.openRecordStore(recordName, true);
			StringBuffer s = new StringBuffer("");
			Enumeration e = data.keys();
			while(e.hasMoreElements()){
				Object key = e.nextElement();
				s.append(key + "=" + data.get(key));
				if (e.hasMoreElements()){
					s.append("&");
				}
			}
			val = s.toString();
			if(s.length() > 0){
				if (recordstore.getNumRecords() >= recordID){
					recordstore.setRecord(recordID,val.getBytes(),0,val.getBytes().length);
				}
				else{
					recordstore.addRecord(val.getBytes(),0,val.getBytes().length);
				}
				recordstore.closeRecordStore();
			}
		}
		catch (RecordStoreFullException e) {
			e.printStackTrace();
		}
		catch (InvalidRecordIDException e){
			e.printStackTrace();
		}
		catch (RecordStoreNotFoundException e) {
			e.printStackTrace();
		}
		catch (RecordStoreException e) {
			e.printStackTrace();
		}
	}
	
	public Hashtable getData() {
		return data;
	}

	public void setData(Hashtable data) {
		this.data = data;
	}

	public int getRecordID() {
		return recordID;
	}

	public void setRecordID(int recordID) {
		this.recordID = recordID;
	}

	public String getRecordName() {
		return recordName;
	}

	public void setRecordName(String recordName) {
		this.recordName = recordName;
	}
	
	public boolean checkStore() {
		String[] recordstores = RecordStore.listRecordStores();
		if (recordstores == null || recordstores.length == 0){
			return false;	
		}
		else{
			for (int i = 0;i < recordstores.length;i ++){
				if(this.getRecordName().equals(recordstores[i])){
					return true;
				}
			}
		}
		return false;
	}
	
	private static String[] split(String original,String regex)
	 {
//	  取子串的起始位置
	  int startIndex = 0;
//	  将结果数据先放入Vector中
	  Vector v = new Vector();
//	  返回的结果字符串数组
	  String[] str = null;
//	  存储取子串时起始位置
	  int index = 0;
//	  获得匹配子串的位置
	  startIndex = original.indexOf(regex); 
//	  System.out.println("0" + startIndex); 
//	  如果起始字符串的位置小于字符串的长度,则证明没有取到字符串末尾。
//	  -1代表取到了末尾
	  while(startIndex < original.length() && startIndex != -1)
	  {
	   String temp = original.substring(index,startIndex);
//	   System.out.println("     "  + startIndex);
//	   取子串
	   v.addElement(temp);
//	   设置取子串的起始位置
	   index = startIndex + regex.length();
//	   获得匹配子串的位置
	   startIndex = original.indexOf(regex,startIndex + regex.length());
	  }
//	  取结束的子串
	  v.addElement(original.substring(index + 1 - regex.length()));
//	  将Vector对象转换成数组
	  str = new String[v.size()];
	  for(int i=0;i<v.size();i++)
	  {
	   str[i] = (String)v.elementAt(i);
	  }
//	  返回生成的数组
	  return str;
	 }

	public void splitDatastring(String original,String regex){
		if (original.indexOf(regex)>0 && original.indexOf(regex) < original.length()){
			data.put(original.substring(0,original.indexOf("=")),original.substring(original.indexOf("=")+1));
		}
	}

	public String getModifyTime() {
		return modifyTime;
	}

	public void setModifyTime(String modifyTime) {
		this.modifyTime = modifyTime;
	}

	public int getIntVal(String valname){
		if (data.containsKey(valname)){
			return Integer.parseInt(data.get(valname).toString());
		}
		else{
			return 0;
		}
	}
	
	public String getStringVal(String valname){
		if (data.containsKey(valname)){
			return (data.get(valname).toString());
		}
		else{
			return "";
		}
	}
	
	public void setVal(String valname,String val){
		data.put(valname, val);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -