Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android保存鍵值,不用占用內存的sharedPreference,而是Properties本地文件

Android保存鍵值,不用占用內存的sharedPreference,而是Properties本地文件

編輯:關於Android編程

SharedPreference放在data/data/包名/下面。
是占用內存得,如果保存大量的數據,需要放到sdcard下去,所以SharedPreferences不方便,直接用Properties類的方式比較好。
可以把文件當作字符串傳入,能訪問獲取正確值就好!
[java] 
package com.nil.cache; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Properties; 
 
public class PropertiesConfig extends Properties { 
 
    String propertyPath=""; 
    private PropertiesConfig(String path) { 
        propertyPath=path; 
    }; 
 
    public static PropertiesConfig getInstance(String path) { 
        { 
            File file = new File(path); 
            if (file.exists()) { 
                try { 
                    file.createNewFile(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            } 
            PropertiesConfig pro = new PropertiesConfig(path); 
            try { 
                InputStream is = new FileInputStream(file); 
                pro.load(is); 
                is.close(); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            return pro; 
        } 
         
    } 
 
    @Override 
    public Object setProperty(String key, String value) { 
        super.setProperty(key, value); 
        try { 
            this.store(new FileOutputStream(this.propertyPath), 
                    "utf-8"); 
        } catch (FileNotFoundException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        return value; 
    } 
 
    public Object put(String key, String value) { 
        super.put(key, value); 
        try { 
            this.store(new FileOutputStream(this.propertyPath), 
                    "utf-8"); 
        } catch (FileNotFoundException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        return value; 
    } 

嘿嘿!怎麼用呢?
大概如下調用即可:
[java]
PropertiesConfig.getInstance("/sdcard/client_config.xml").setProperty("187", "name"); 
      
PropertiesConfig.getInstance("/sdcard/client_config.xml").get("187"); 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved