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();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值