DEV Lưu và truy xuất data sử dụng RMS.

Thảo luận trong 'DEV - Khu Vực Dành Cho Lập Trình Viên' bắt đầu bởi Aric Lam, 19/9/12.

  1. Lưu và Truy xuất data sử dụng RMS

    Ứng dụng thực tế: Ví dụ lưu settings của chương trình lại để lần sau chương trình có thể truy xuất và setup với settings đã được lưu.

    Method để lưu data:


    Mã:
      /**
        * Save Data to RMS.
        *
        */   
        private void saveData(String myData) throws RecordStoreException, IOException {
                   
            try {
                RecordStore.deleteRecordStore("MyData"); // Delete RecordStore có sẵn ứng với tên mình đặt
            }
            catch (RecordStoreException e) {
            }
     
            RecordStore store = RecordStore.openRecordStore("MyData", true); // Tạo mới với tên mình đặt
     
            try {
                ByteArrayOutputStream buffer = new ByteArrayOutputStream();
                DataOutputStream output = new DataOutputStream(buffer);
               
                output.writeUTF(myData); // Lưu chuỗi String.
                           
                store.addRecord(buffer.toByteArray(), 0, buffer.size());
            }
            finally {
                store.closeRecordStore();
            }
        }
    Method để load data:

    Mã:
     /**
        * Load Data
        *
        */
        private String loadData() throws RecordStoreException, IOException {
            String mydata = "";
            try {
                RecordStore store = RecordStore.openRecordStore("MyData", false); // Mở RecordStore với tên mình đặt từ trước
     
                try {
                    ByteArrayInputStream buffer = new  ByteArrayInputStream(store.getRecord(1)); // First record index is 1  (not 0 as usual)
                   
                    DataInputStream input = new DataInputStream(buffer);
                   
                    myData = input.readUTF(); // Load dữ liệu được lưu vào biến myData
     
                }
                finally {
                    store.closeRecordStore();
                }
            }
            catch (Exception e) {
                System.out.println(e.toString());
            }
            return myData;
        }
    Đối với dữ liệu khi lưu thì có thể là String, Int, Boolean... và ứng với mỗi loại ta có những method tương ứng như writeUTF, writeInt, writeBoolean.... và readUTF, readInt, readBoolean...

    Khi lưu dữ liệu thì dữ liệu được lưu theo thứ tự và khi load cũng theo thứ tự.

    Cách thức load dữ liệu cũng tùy thuộc vào developer. Load rồi return hoặc sau khi load thì gán cho biến...

    ví dụ lần đầu vào chương trình ta cho người dùng nhập tên vào 1 ô text.

    Sau khi người dùng nhập xong thì gọi method:


    Lần sau khi vào chương trình thì có thể báo 1 câu chào:


    Đối với việc lưu data vào RMS sẽ không làm mất data khi thoát khỏi chương trình. Do đó lần sau mở chương trình thì ta có thể sử dụng data được lưu sẵn trên máy.
     
    Aric Lam

    Aric Lam
    Expand Collapse

    Go & Let's go

    Tham gia ngày:
    6/4/11
    Bài viết:
    4,710
    Đã được thích:
    2,921
    #1 Aric Lam, 19/9/12
    Last edited: 19/9/12

Chia sẻ trang này

PING