Android 在外部存储读写文件_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android 在外部存储读写文件

Android 在外部存储读写文件

 2016/6/2 5:31:02  wuyudong  程序员俱乐部  我要评论(0)
  • 摘要:本文主要介绍android中如何在外部存储读写数据sd卡的路径sdcard:2.3之前的sd卡路径mnt/sdcard:4.3之前的sd卡路径storage/sdcard:4.3之后的sd卡路径打开fileexplorer可以看到sdcard是个空的文件夹,因为这个文件夹是个快捷方式,指向/storag文件夹,接着打开storag文件夹读写sd卡最简单的打开sd卡的方式Filefile=newFile("sdcard/info.txt");*写sd卡需要权限<uses
  • 标签:android 文件

本文主要介绍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();
            }
        }
    }

 

上一篇: Ado.net 三[SQL注入,DataAdapter,sqlParameter,DataSet] 下一篇: 没有下一篇了!
发表评论
用户名: 匿名