日期:2014-05-20  浏览次数:20719 次

J2ME学习(3)-------RMS

? ??? ??? RecordStore store = RecordStore.openRecordStore("DB", true);
??? ??? ??? Person p = new Person();
??? ??? ??? byte[] b = p.obj2ByteArray();??? ??? ???
??? ??? ??? store.addRecord(b, 0, b.length);??? ??? ???
??? ??? ??? System.out.println(store.getNumRecords());??? ??? ???
??? ??? ??? p.byteArrayToObj(store.getRecord(1));??? ??? ???
??? ??? ??? store.closeRecordStore();

?

?

?

?

??? class Person
??? {
??? ??? private String name;
??? ??? private String phone;
??? ??? public byte[] obj2ByteArray() throws Exception
??? ??? {
??? ??? ??? ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
??? ??? ??? DataOutputStream dos = new DataOutputStream(outputStream);
??? ??? ???
??? ??? ??? dos.writeUTF("事实上");
??? ??? ??? dos.writeUTF("32322332");
??? ??? ??? outputStream.close();
??? ??? ??? dos.close();
??? ??? ??? return outputStream.toByteArray();
??? ??? }
??? ???
??? ???
??? ??? public void byteArrayToObj(byte [] b) throws Exception
??? ??? {
??? ??? ??? ByteArrayInputStream inputStream = new ByteArrayInputStream(b);
??? ??? ??? DataInputStream dos = new DataInputStream(inputStream);

??? ??? ??? System.out.println(dos.readUTF());
??? ??? ??? System.out.println(dos.readUTF());
??? ??? }
??? }

?

?

遍历:

RecordStore store = RecordStore.openRecordStore("DB", true);
??? ??? ??? store.addRecord("中国".getBytes(), 0, 4);
??? ??? ??? store.addRecord("日本".getBytes(), 0, 4);
??? ??? ??? store.addRecord("韩国".getBytes(), 0, 4);
??? ??? ???
??? ??? ??? store.deleteRecord(2);
??? ??? ??? int num = store.getNumRecords();
??? ??? ??? for(int i = 0; i <= num ;i ++)
??? ??? ??? {
??? ??? ??? ??? System.out.println(new String(store.getRecord(i)));
??? ??? ??? }

//这样是错误的、

?

RecordEnumeration n = store.enumerateRecords(null, null, false);
??? ??? ??? while(n.hasNextElement())
??? ??? ??? {
??? ??? ??? ??? System.out.println(new String(n.nextRecord()));
??? ??? ??? }

RecordListener

?

RecordFilter:

public boolean matches(byte[] c)

?

RecordFilter

public int compare(byte[] arg0, byte[] arg1)
??? {
??? ??? return RecordComparator.EQUIVALENT;
??? }

?

?

?

?