www.pudn.com > 应用RMS实现用户自动登陆功能.rar > Model.java


/* 
 * Created on 2004-11-4 
 * 
 * TODO To change the template for this generated file go to 
 * Window - Preferences - Java - Code Style - Code Templates 
 */ 
package com.j2medev.autologin; 
 
import javax.microedition.rms.*; 
import java.io.*; 
 
/** 
 * @author P2800 
 *  
 * TODO To change the template for this generated type comment go to Window - 
 * Preferences - Java - Code Style - Code Templates 
 */ 
public class Model 
{ 
    private RecordStore accountStore; 
    public static final String RNAME = "accountstore"; 
 
    public Model() 
    { 
        try 
        { 
            accountStore = RecordStore.openRecordStore(RNAME, true); 
        } catch (RecordStoreException e) 
        { 
            e.printStackTrace(); 
        } 
    } 
 
    public void closeRecordStore() 
    { 
        try 
        { 
            accountStore.closeRecordStore(); 
        } catch (RecordStoreException e) 
        { 
            e.printStackTrace(); 
        } 
    } 
 
    public void saveAccount(Account account) 
    { 
        ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
        DataOutputStream dos = new DataOutputStream(baos); 
        try 
        { 
            account.serialize(dos); 
            byte[] data = baos.toByteArray(); 
            accountStore.addRecord(data, 0, data.length); 
            baos.close(); 
        } catch (IOException e) 
        { 
            e.printStackTrace(); 
        } catch (RecordStoreException e) 
        { 
            e.printStackTrace(); 
        } 
 
    } 
 
    public Account getAccount(int recordID) 
    { 
 
        try 
        { 
            if (accountStore.getNumRecords() > 0) 
            { 
                byte[] data = accountStore.getRecord(recordID); 
                ByteArrayInputStream bais = new ByteArrayInputStream(data); 
                DataInputStream dis = new DataInputStream(bais); 
                Account account = Account.deserialize(dis); 
                bais.close(); 
                return account; 
            } 
            return null; 
 
        } catch (IOException e) 
        { 
            return null; 
        } catch (RecordStoreException e) 
        { 
            return null; 
        } 
    } 
 
    public void savePreference(Preference preference) 
    { 
        ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
        DataOutputStream dos = new DataOutputStream(baos); 
        try 
        { 
            preference.serialize(dos); 
            byte[] data = baos.toByteArray(); 
            accountStore.addRecord(data, 0, data.length); 
            baos.close(); 
             
        } catch (IOException e) 
        { 
            e.printStackTrace(); 
        } catch (RecordStoreException e) 
        { 
            e.printStackTrace(); 
        } 
 
    } 
 
    public Preference getPreference(int recordID) 
    { 
        try 
        { 
            if (accountStore.getNumRecords() > 0) 
            { 
                byte[] data = accountStore.getRecord(recordID); 
                ByteArrayInputStream bais = new ByteArrayInputStream(data); 
                DataInputStream dis = new DataInputStream(bais); 
                Preference preference = Preference.deserialize(dis); 
                bais.close(); 
                return preference; 
            } 
            return null; 
        } catch (IOException e) 
        { 
            return null; 
        } catch (RecordStoreException e) 
        { 
            return null; 
        } 
    } 
 
}