用戶信息存儲

Android數據本地持久化方案目前有SharePreference,文件,Sqlite;java

  1. SharePreference,對於數據的存儲方法最簡單,可是不適用單個數據較多的狀況,會拖慢查詢其餘數據的時間;
  2. Sqlite,比較靈活,涉及到數據的增刪改查比較好用;
  3. 文件存儲,仍是比較適用來存儲用戶我的信息的(涉及隱私數據須要加密處理)
  4. Properties,java方法,主要用於讀取一些定義好的配置信息(不適合頻繁寫數據)

利用文件寫入用戶信息數據:app

public static void writerObject(Context context, Object userInfo) {
        ObjectOutputStream objectOutputStream = null;
        try {
            FileOutputStream fileOutputStream = context.getApplicationContext().openFileOutput(FILENAME, Context.MODE_PRIVATE);
            objectOutputStream = new ObjectOutputStream(fileOutputStream);
            objectOutputStream.writeObject(userInfo);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (objectOutputStream != null) {
                try {
                    objectOutputStream.flush();
                    objectOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

從文件中讀取用戶信息:加密

public static Object readerObject(Context context) {
        ObjectInputStream objectInputStream = null;
        Object userInfo = null;
        try {
            FileInputStream fileInputStream = context.getApplicationContext().openFileInput(FILENAME);
            objectInputStream = new ObjectInputStream(fileInputStream);
            userInfo = objectInputStream.readObject();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (objectInputStream != null) {
                try {
                    objectInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return userInfo;
    }

利用Properties讀取assets目錄下的配置信息:code

public static String getProperties(Context context, String key){
        Properties props = new Properties();
        try {
            InputStream in = context.getAssets().open("appConfig.properties");
            props.load(in);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return props.getProperty(key);
    }
相關文章
相關標籤/搜索