Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
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. | 5/13/2020 11:38:59 PM 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 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU 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; 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU 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); 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU Các phương thức: String[] listRecordStores(); int getNumRecords(); int getRecordSize(int index); void closeRecordStore(); void deleteRecordStore(String filename); 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU 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(); 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU 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); } 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU 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 Ví dụ: 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU 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; } } 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU Sử dụng lớp SearchFilter : private void searchRecordStore() { if (rs.getNumRecords() > 0) { SearchFilter search = new SearchFilter(tfFind.getString()); RecordEnumeration re = rs.enumerateRecords(search, null, false); if (re.numRecords() > 0) siMatch.setText(new String(re.nextRecord())); re.destroy(); } } } 5/13/2020 11:38:59 PM Võ Phương Bình – ITFAC - DLU