zoukankan      html  css  js  c++  java
  • 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();
                }
            }
        }
  • 相关阅读:
    数据库准入规则
    ubuntu go 开发环境搭建
    PHP 异步执行方式
    python 连接 hive数据库环境搭建
    Swift 发送邮件和附件
    python 爬取动态数据
    git 新建项目的一些操作
    php 爬取数据
    通过NGINX location实现一个域名访问多个项目
    Linux系统Web网站目录和文件安全权限设置
  • 原文地址:https://www.cnblogs.com/wuyudong/p/5549567.html
Copyright © 2011-2022 走看看