15/9/7/SharePreference/内部存储/外部存储

来源:互联网 发布:surefire 淘宝山寨 编辑:程序博客网 时间:2024/06/06 09:28

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();        }    }
0 0