博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3-SII--Android的SD卡文件读写
阅读量:7058 次
发布时间:2019-06-28

本文共 2992 字,大约阅读时间需要 9 分钟。

零、前言

[1]读写SD卡需要运行时权限。

[2]如果对运行时权限不清楚的童鞋,可以看一下我的封装:

一、使用:SD卡文件读写

FileHelper fileHelper = FileHelper.get();//在SD卡追加模式创建:data/writeFile2SD.txt文件,写入"toly"fileHelper.writeFile2SD("data/writeFile2SD.txt", "toly", true);//在SD卡上创建一个空文件fileHelper.createFile("create/create.txt");//读取data/writeFile2SD.txt文件String read = fileHelper.readFromSD("data/writeFile2SD.txt");System.out.println(read);//tolytolytolytolytolytoly

二、创建文件

判断是否存在SD卡
/**     * 判断是否存在SD卡     *     * @return 是否存在SD卡     */    private boolean hasSdCard() {        return Environment.getExternalStorageState()                .equals(Environment.MEDIA_MOUNTED);    }
在SD卡中创建文件
/**     * 在SD卡中创建文件的核心代码     *     * @param savePath    保存的绝对路径(路径不存在会自动创建上级文件夹)     * @param fileContent 文件内容     * @param append      是否以追加模式     */    private File writeFileWithAbsolutePath(String savePath, String fileContent, boolean append) {        FileOutputStream fos = null;        File filePic = null;        try {            filePic = new File(savePath);            if (!filePic.exists()) {                filePic.getParentFile().mkdirs();                filePic.createNewFile();            }            fos = append ?                     new FileOutputStream(savePath, true) : new FileOutputStream(savePath);            write(fos, fileContent);        } catch (IOException e) {            e.printStackTrace();        } finally {            close(fos);        }        return filePic;    }        /**     * 在SD卡中创建文件暴露方法     *     * @param filename    文件名:(形式:"XX/YY/ZZ.UU")     * @param fileContent 文件内容     * @param append      是否以追加模式     */    public File writeFile2SD(String filename, String fileContent, boolean append) {        return writeFileWithAbsolutePath(PathUtils.getSDPath() + File.separator + filename, fileContent, append);    }        /**     * 在SD卡中创建空文件     *     * @param filename 文件名     * @return 文件对象     */    public File createFile(String filename) {        return writeFile2SD(filename, "", false);    }

三、读取文件

/**     * 在SD卡中读取文件     *     * @param filename 文件名     * @return 文件内容     */    private String readFileWithAbsolutePath(String filename) {        String result = null;        FileInputStream input = null;        if (hasSdCard()) {            try {                input = new FileInputStream(filename);//文件输入流                result = read(input);//读取InputStream                close(input); //关闭输入流            } catch (IOException e) {                e.printStackTrace();                L.e(e.toString());            } finally {                close(input);            }        }        return result;    }    /**     * 在SD卡中读取文件     *     * @param fileName 文件名     * @return 文件内容     */    public String readFromSD(String fileName) {        return readFileWithAbsolutePath(PathUtils.getSDPath() + File.separator + fileName);    }

后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明

[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力

2.连接传送门:

3.联系我

QQ:1981462002

邮箱:

微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
公众号.jpg
你可能感兴趣的文章
腾讯云COSFS工具使用说明 - 腾讯云对象存储映射到本地磁盘目录
查看>>
server-side-events(SSE)开发指南(Node)
查看>>
要点提炼| 理解JVM之GC&内存分配
查看>>
Android小知识-Java多线程的基础知识了解下
查看>>
人人都能懂的Vue源码系列(二)—Vue构造函数
查看>>
Regular进阶: 几点性能优化的建议
查看>>
在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务
查看>>
44 道 JavaScript 难题(JavaScript Puzzlers!)
查看>>
我所不知的JS
查看>>
【记录】 Docker 的安装和通过 Docker 使用 Tomcat and mongoDB 的过程
查看>>
MySQL数据库运维之数据备份02
查看>>
nginx实现反向代理和负载据均衡
查看>>
渐进式Web应用(PWA)入门教程(下)
查看>>
connect.js中间件实现之函数队列思想
查看>>
安装配置gunicorn和NGINX的学习笔记
查看>>
【转】ionic之AngularJS手势事件
查看>>
生成随机数字
查看>>
node入门基础
查看>>
二、数据的存放put
查看>>
chrome - 收藏集 - 掘金
查看>>