15/9/7/SharePreference/內部存儲/外部存儲

SharePreference

內部存儲

外部存儲

SharePreference通過鍵值對的形式保存簡單、私有的數據

 /***
     * 內部存儲
     * 該方法會在手機的私有內存中創建一個文件夾,名稱爲shared_prefs,裏面會生成xml文件自動生成鍵值對
     * getSharedPreferences方法可以生成指定的xml文件命名
     * getPreferences生成以當前Activity的爲名稱的XML文檔
     * 通常選用的模式都是MODE_PRIVATE
     */
  public void PreferenceWrite() {
//        SharedPreferences preferences=getSharedPreferences("preference_text",MODE_PRIVATE);
        SharedPreferences preferences=getPreferences(MODE_PRIVATE);//以當前Activity名稱創建用於存儲鍵值對的xml文檔模式選爲默認
        SharedPreferences.Editor editor=preferences.edit();//需要調用edit()方法纔可以添加鍵值對
        editor.putString("edittext_input",mEditText.getText().toString());//添加鍵值對
        editor.commit();
    }

 public void PreferenceRead() {
//        SharedPreferences preferences=getSharedPreferences("preference_text",MODE_PRIVATE);
        SharedPreferences preferences=getPreferences(MODE_PRIVATE);//從當前Activity的xml文檔中讀取數據
        String content=preferences.getString("edittext_input","我是默認值");//得到對應鍵的值
        mTextView.setText(content);//在TextView上進行顯示
    }

內部存儲是把私有數據存儲到內部存儲設備上

 /***
     * 該方法回在內部存儲中file文件夾下創建一個名爲helloCache的文件,用存放數據
     */
    public void WriteCache() {
        try {
            FileOutputStream outputStream=openFileOutput("helloCache",MODE_PRIVATE);
            PrintWriter writer=new PrintWriter(new OutputStreamWriter(outputStream));
            writer.write("你好,我是緩存");
            writer.flush();
            writer.close();
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

/***
     * 該方法用於提取在file文件夾下名爲helloCache的文件內容
     */
    public void ReadCache() {
        try {
            FileInputStream is=openFileInput("helloCache");
            BufferedReader br=new BufferedReader(new InputStreamReader(is));
            String line=br.readLine();
            while (line!=null){
                Log.d("readline", "" + line);
                line=br.readLine();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

/***
     *該方法會在內部存儲中創建一個Cache文件夾下創建一個名爲hellworld的txt文件
     * 然後向該txt中寫入內容
     */
    public void WriteCacheDir() {
        File file=new File(getCacheDir(),"helloworld.txt");
        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            FileOutputStream outputStream=new FileOutputStream(file);
            PrintWriter writer=new PrintWriter(new OutputStreamWriter(outputStream));
            writer.write("你好,我是內部存儲");
            writer.flush();
            writer.close();
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

外部存儲把公有的數據存放到共享的外部存儲介質中去

 /***
     * 首先需要在Manifest中獲得權限
     * <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     *<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
     * 通過Environment.getExternalStorageDirectory().getAbsolutePath()方法獲得外部存儲的路徑,在該路徑下創建名爲
     * helloworld的txt文件然後向裏面寫入一些內容
     */
    public void WriteSdCard() {
        File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"helloworld.txt");
        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            FileOutputStream outputStream=new FileOutputStream(file);
            PrintWriter writer=new PrintWriter(new OutputStreamWriter(outputStream));
            writer.write("你好,本地存儲");
            writer.flush();
            writer.close();
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章