08/13/14 1 Võ Phương Bình – ITFAC - DLU Giới thiệu Ghi và đọc Duyệt bản ghi Sắp xếp Tìm kiếm 08/13/14Võ Phương Bình – ITFAC - DLU 2 RMS - Record Management System: › Là cơ chế để các ứng dụng MIDlet lưu trữ, truy xuất và thao tác dữ liệu trên thiết bị di động. › Dữ liệu sẽ được lưu trữ bền trên thiết bị ngay cả khi ứng dụng không còn thực thi. Lớp bản ghi: RecordStore › javax.microedition.rms. RecordStore; 08/13/14Võ Phương Bình – ITFAC - DLU 3 Khởi tạo: › RecordStore rs = RecordStore.openRecordStore(String filename, boolean createnew) Ghi: › rs.addRecord(byte[] rec, int start, int length); Đọc: › rs.getRecord(int index, byte[] recData, int offset); 08/13/14Võ Phương Bình – ITFAC - DLU 4 Các phương thức: › String[] listRecordStores(); › int getNumRecords(); › int getRecordSize(int index); › void closeRecordStore(); › void deleteRecordStore(String filename); 08/13/14Võ Phương Bình – ITFAC - DLU 5 Sử dụng Stream: › ByteArrayOutputStream strmBytes; › DataOutputStream strmDataType = new DataOutputStream(strmBytes); Ghi: strmDataType.writeUTF(String sData); strmDataType.writeBoolean(boolean bData); strmDataType.writeInt(int iData); Đọc: strmDataType.readUTF(); strmDataType.readBoolean(); strmDataType.readInt(); 08/13/14Võ Phương Bình – ITFAC - DLU 6 Sử dụng bộ đếm bản ghi Enumerator. Cho pho phép di chuyển đến trước và sau các bản ghi trong vùng bản ghi. Điểm mạnh: Sắp xếp, Tìm kiếm. Ví dụ: RecordEnumeration re = rs.enumerateRecords(Filter, Compator, false); while (re.hasNextElement()) { String str = new String(re.nextRecord()); System.out.println(str); } 08/13/14Võ Phương Bình – ITFAC - DLU 7 Thực thi giao diện RecordComparator. Định nghĩa lại hàm so sánh compare: › class Comparator implements RecordComparator › { public int compare(byte[] rec1, byte[] rec2) { String str1 = new String(rec1), str2 = new String(rec2); int result = str1.compareTo(str2); if (result == 0) return RecordComparator.EQUIVALENT; else if (result < 0) return RecordComparator.PRECEDES; else return RecordComparator.FOLLOWS; } › } 08/13/14Võ Phương Bình – ITFAC - DLU 8 Ví dụ: 08/13/14Võ Phương Bình – ITFAC - DLU 9 Thực thi giao diện RecordFilter › class SearchFilter implements RecordFilter › { private String searchText = null; public SearchFilter(String searchText) { this.searchText = searchText.toLowerCase(); } public boolean matches(byte[] candidate) { String str = new String(candidate).toLowerCase(); if (searchText != null && str.indexOf(searchText) != -1) return true; return false; } › } 08/13/14Võ Phương Bình – ITFAC - DLU 10 . Bình – ITFAC - DLU 6 Sử dụng bộ đếm bản ghi Enumerator. Cho pho phép di chuyển đến trước và sau các bản ghi trong vùng bản ghi. Điểm mạnh: Sắp xếp, Tìm kiếm. Ví. 08/13/14 1 Võ Phương Bình – ITFAC - DLU Giới thiệu Ghi và đọc Duyệt bản ghi Sắp xếp Tìm kiếm 08/13/14Võ Phương Bình – ITFAC - DLU 2 RMS - Record. DLU 3 Khởi tạo: › RecordStore rs = RecordStore.openRecordStore(String filename, boolean createnew) Ghi: › rs.addRecord(byte[] rec, int start, int length); Đọc: › rs.getRecord(int index, byte[]