简单封装MIDP RMS操作
2006-06-19 09:29
453 查看
许多MIDP应用程序需要简单的存储配置信息,对此,简单封装一个RMSHandler,实现一条记录的读写:
需要持久化的类实现一个Persistentable接口:
读写数据时,按照顺序依次读写即可,例如:
package com.crackj2ee.midp.rms;
import java.io.*;
import javax.microedition.rms.*;
public final class RMSHandler {
private static final String RECORD_STORE_NAME = "RmsDaTa";
public static boolean loadUniqueRecord(Persistentable p) { byte[] data = loadUniqueRecord(); if(data==null) return false; DataInputStream input = null; try { input = new DataInputStream(new ByteArrayInputStream(data)); p.load(input); return true; } catch(IOException ioe) { return false; } finally { try { input.close(); } catch (Exception e) {} } }
public static boolean saveUniqueRecord(Persistentable p) { DataOutputStream output = null; try { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); output = new DataOutputStream(bytes); p.save(output); return saveUniqueRecord(bytes.toByteArray()); } catch(IOException ioe) { return false; } finally { if(output!=null) try { output.close(); } catch (Exception e) {} } }
private static byte[] loadUniqueRecord() { RecordStore rs = null; RecordEnumeration re = null; try { rs = RecordStore.openRecordStore(RECORD_STORE_NAME, true); if(rs.getNumRecords()==0) return null; re = rs.enumerateRecords(null, null, false); if(re.hasNextElement()) return re.nextRecord(); return null; } catch(RecordStoreException rse) { return null; } finally { if(re!=null) { re.destroy(); } if(rs!=null) { try { rs.closeRecordStore(); } catch (Exception e) {} } } }
private static boolean saveUniqueRecord(byte[] data) { RecordStore rs = null; RecordEnumeration re = null; try { rs = RecordStore.openRecordStore(RECORD_STORE_NAME, true); re = rs.enumerateRecords(null, null, false); if(re.hasNextElement()) { rs.setRecord(re.nextRecordId(), data, 0, data.length); } else { rs.addRecord(data, 0, data.length); } return true; } catch(RecordStoreException rse) { return false; } finally { if(re!=null) { re.destroy(); } if(rs!=null) { try { rs.closeRecordStore(); } catch (Exception e) {} } } } }
需要持久化的类实现一个Persistentable接口:
package com.crackj2ee.midp.rms;
import java.io.*;
public interface Persistentable {
void save(DataOutputStream output) throws IOException;
void load(DataInputStream input) throws IOException;
}
读写数据时,按照顺序依次读写即可,例如:
class MyForm extends Form implements Persistentable { private int score; private String username; public MyForm() { super("Test"); load(this); } public void save(DataOutputStream output) throws IOException { output.writeInt(score); output.writeUTF8(username); }
public void load(DataInputStream input) throws IOException { score = input.readInt(); username = input.readUTF8(); } }
相关文章推荐
- Python操作Oracle数据库的简单方法和封装类实例
- JXL.jar简单封装Excel读写操作
- Php Mssql操作简单封装支持存储过程
- Php Mssql操作简单封装支持存储过程
- C#文件操作简单封装
- QSqlDatabase的进一步封装(多线程支持+更加简单的操作)——同时支持MySQL, SQL Server和Sqlite
- jdbc中对mysql数据库操作的简单封装--(仅做备忘记录)
- 一个简单的数据库操作类、封装了一些简单的操作
- Golang对MongoDB数据库的操作简单封装教程
- 基于POI的简单EXCEL操作封装
- redis学习之java类对redis库操作的简单封装
- redis学习之Jedis使用线程池封装redis的基本操作及spring的简单封装
- 对一个Php访问Mssql操作的一个简单封装简单支持存储过程
- python对mysql.connector的简单封装,读改增删基本操作
- 对jdbc操作工具类JdbcUtil的简单封装与应用
- ADO.NET 操作数据库 --- 01 简单封装
- excelpanel--extjs中嵌入excel,并封装简单操作
- 简单封装FMDB操作sqlite的模板
- 从一个简单的组件化封装写优化DOM操作
- php简单封装了一些常用JS操作