码迷,mamicode.com
首页 > 其他好文 > 详细

外部存储读写

时间:2015-05-30 15:17:29      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

直接复制粘贴Android项目的修改项

  1. 项目名称
  2. 清单文件
  3. res > strings >values
  4. 导包

外部存储路径演变

  • 2.2之前:根目录下/sdcard
  • 2.2之后:mnt/sdcard
  • 4.2开始:storage/sdcard
  • 在原来的盘符路径留下快捷方式目的是为了兼容低版本应用

路径api

   在实际开发是需要使用路径api来获取外部存储的真实盘符路径,因为各大厂商的sd路径各不相同,为了兼容,在开发是需要使用api来获取sd路径的。

   Environment.getExternalStorageDirectory()   返回包含sd卡真实路径的File对象。

读写权限

  • 写数据必须要权限:WRITE_EXTERNAL_STORAGE
  • 读数据可要可不要:READ_EXTERNAL_STORAGE
    • 4.0之前是完全不需要权限的,4.0之后用户设置了sd读写保护就必须要权限,当然默认还是需要赋予权限

sd卡状态

   我们在将数据保存到sd中之前需要判断sd卡的状态是否能够进行读写操作

   Environment.getExternalStorageState()   返回String类型字符串

  1. MEDIA_REMOVED      卸载,没有插sd卡
  2. MEDIA_UNMOUNTED    插了sd卡,但是没有挂载(4.0之前有一个卸载sd卡按钮)
  3. MEDIA_CHECKING     sd卡正在被遍历
  4. MEDIA_MOUNTED      sd卡可以被读写
  5. MEDIA_MOUNTED_READ_ONLY  sd卡只读

代码

 1 /**
 2      * 登陆
 3      * 
 4      * @param view
 5      */
 6     public void login(View view) {
 7         String name = et_name.getText().toString();
 8         String pass = et_pass.getText().toString();
 9 
10         CheckBox cb = (CheckBox) findViewById(R.id.cb);
11         if (cb.isChecked()) {
12             if (Environment.MEDIA_MOUNTED.equals(Environment
13                     .getExternalStorageState())) {
14                 File file = new File(Environment.getExternalStorageDirectory(),
15                         "info.txt");
16                 try {
17                     FileOutputStream fos = new FileOutputStream(file);
18                     fos.write((name + "##" + pass).getBytes());
19                     Toast.makeText(this, "登陆成功", 0).show();
20                     fos.close();
21                 } catch (Exception e) {
22                     Toast.makeText(this, "登陆失败", 0).show();
23                     e.printStackTrace();
24                 }
25             }
26         } else {
27             Toast.makeText(this, "亲,你没有记住用户名和密码啊", 0).show();
28         }
29     }
30 
31     /**
32      * 记住用户名和密码
33      */
34     public void readAccount() {
35         File file = new File(Environment.getExternalStorageDirectory(),
36                 "info.txt");
37         FileInputStream fis;
38         if (file.exists()) {
39             try {
40                 fis = new FileInputStream(file);
41                 BufferedReader br = new BufferedReader(new InputStreamReader(
42                         fis));
43                 String text = br.readLine();
44                 String[] strings = text.split("##");
45                 et_name.setText(strings[0]);
46                 et_pass.setText(strings[1]);
47             } catch (Exception e) {
48                 e.printStackTrace();
49             }
50         } else {
51             Toast.makeText(this, "没有找到文件", 0).show();
52         }
53     }

 

外部存储读写

标签:

原文地址:http://www.cnblogs.com/xinjianwenjianjia/p/4540370.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!