Android 存储 SD卡

 

 

 

 

 给出关键代码

复制代码
public void save(View v) throws IOException {
        //1. 判断sd卡状态, 如果是挂载的状态才继续, 否则提示
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            //2. 读取输入的文件名/内容
            String fileName = et_of_name.getText().toString();
            String content = et_of_content.getText().toString();
            //3. 得到指定文件的OutputStream
                //1).得到sd卡下的files路径   #参数会区别文件类型,创建对应的文件夹
            String filesPath = getExternalFilesDir(null).getAbsolutePath();
                //2).组成完整路径
            String filePath = filesPath+"/"+fileName;
                //3). 创建FileOutputStream
            FileOutputStream fos = new FileOutputStream(filePath);
            //4. 写数据 
            fos.write(content.getBytes("utf-8"));
            fos.close();
            //5. 提示
            Toast.makeText(this, "保存完成", 0).show();
        } else {
            Toast.makeText(this, "sd卡没有挂载", 0).show();
        }
        
    }

    public void read(View v) throws Exception {
        
        // 1. 判断sd卡状态, 如果是挂载的状态才继续, 否则提示
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            // 2. 读取输入的文件名
            String fileName = et_of_name.getText().toString();
            // 3. 得到指定文件的InputStream
                // 1).得到sd卡下的files路径
            String filesPath = getExternalFilesDir(null).getAbsolutePath();
                // 2).组成完整路径
            String filePath = filesPath + "/" + fileName;
                // 3). 创建FileInputStream
            FileInputStream fis = new FileInputStream(filePath);
            // 4. 读取数据, 成String
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = -1;
            while((len=fis.read(buffer))!=-1) {
                baos.write(buffer, 0, len);
            }
            String content = baos.toString();
            
            // 5. 显示
            et_of_content.setText(content);
        } else {
            Toast.makeText(this, "sd卡没有挂载", 0).show();
        }
    }
View Code
复制代码

 

posted @   超级学渣渣  阅读(98)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2020-02-24 JAVA 反射 动态代理与AOP
2020-02-24 JAVA 反射 动态代理
2020-02-24 JAVA 反射 方法反射
2020-02-24 JAVA 字段反射
2020-02-24 JAVA 创建运行时类实例
点击右上角即可分享
微信分享提示