Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> android數據存儲方式(三) Files

android數據存儲方式(三) Files

編輯:Android開發教程

平時的我們如果想要保信息,一般的做法就是記在本子上,然後在使用的時候從本子中拿出來。android 保存數據的方式也可以像是這樣先將數據保存在文件中,然後再從文件中讀取。采取這種方式,我們可以在程 序間共享信息,但默認下,android的文件是私有的,要想共享,需要權限。

例子就用上一篇文章中的 CheckBox,用文件的方式保存點擊狀態(例子的詳情請 看:http://www.cnblogs.com/wenjiang/archive/2013/06/02/3114017.html)

直接就是代 碼:

private boolean isCheck;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        CheckBox checkbox = (CheckBox) this.findViewById(R.id.checkbox);
        getProperties();
        checkbox.setChecked(isCheck);
        checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                isCheck = isChecked;
            }
        });
    }
    
    private boolean saveProperties() {
        Properties properties = new Properties();
        properties.put("info", String.valueOf(isCheck));
        try {
            FileOutputStream out = this.openFileOutput("info.cfg",
                    Context.MODE_WORLD_WRITEABLE);
            properties.store(out, "");
        } catch (FileNotFoundException e) {
            return false;
        } catch (IOException e) {
            return false;
        }
        return true;
    }
    
    private void getProperties() {
        Properties properties = new Properties();
        try {
            FileInputStream in = this.openFileInput("info.cfg");
            properties.load(in);
        } catch (FileNotFoundException e) {
            return;
        } catch (IOException e) {
            return;
        }
        isCheck = Boolean.valueOf(properties.getProperty("info").toString());
    }
    
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            saveProperties();
            this.finish();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

由於涉及到I/O,所以異常處理機制必要的。流程是這樣的:我們先使用put()將數據打包,同 樣是鍵值對,然後通過store()將數據保存在指定的文件中,如果沒有,就創建一個,最後再通過load()讀取 文件內容。load()讀取文件內容並不直接取出數據,它是將文件內容放在properties中,所以我們需要通過 get()方法取出相應的數據。

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