码迷,mamicode.com
首页 > 移动开发 > 详细

Android 在外部存储读写文件

时间:2016-06-01 23:03:40      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:

本文主要介绍android中如何在外部存储读写数据

sd卡的路径

sdcard:2.3之前的sd卡路径

mnt/sdcard:4.3之前的sd卡路径

storage/sdcard:4.3之后的sd卡路径

打开file explorer

技术分享

可以看到sdcard是个空的文件夹,因为这个文件夹是个快捷方式,指向/storag文件夹,接着打开storag文件夹

技术分享

读写sd卡

最简单的打开sd卡的方式

File file = new File("sdcard/info.txt");

* 写sd卡需要权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

技术分享

运行程序

技术分享

* 读sd卡,在4.0之前不需要权限,4.0之后可以设置为需要

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

技术分享

技术分享

通过api获取sd卡的路径

* 使用api获得sd卡的真实路径,部分手机品牌会更改sd卡的路径

Environment.getExternalStorageDirectory()

* 判断sd卡是否准备就绪

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))

完整代码如下:

    public void saveAccount(String name, String pass) {
        // 判断sd卡状态
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            // 得到一个file对象,路径是sd卡的真实路径
            File file = new File("sdcard/info.txt");
            try {
                FileOutputStream fos = new FileOutputStream(file);
                fos.write((name + "##" + pass).getBytes());
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            Toast.makeText(this, "sd卡不可用哟", 0).show();
        }
    }

    public void loadAccount() {
        File file = new File("sdcard/info.txt");
        if (file.exists()) {
            try {
                FileInputStream fis = new FileInputStream(file);
                // 把字节流转换为字节流
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        fis));
                String text = br.readLine();
                String[] s = text.split("##");
                // 获取用户输入的账号和密码
                EditText et_name = (EditText) findViewById(R.id.et_name);
                EditText et_pass = (EditText) findViewById(R.id.et_pass);
                et_name.setText(s[0]);
                et_pass.setText(s[1]);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

 

Android 在外部存储读写文件

标签:

原文地址:http://www.cnblogs.com/wuyudong/p/5549567.html

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