android保存文件到手机内存

首先要指定文件保存的位置,在Java中,我们可以直接使用

Filefile=new File(“info.txt”),但是在Android中,使用这个路径文件会被保存到data/app文件夹(应用程序根目录)下,Android是不允许在这里保存文件的。Android保存文件都是保存在“data/data/包名”文件夹下的。故应该:

Filefile=new File(“data/data/com.xxxx.xxxx/info.txt”);

FileOutputStreamfos=new FileOutputStream(file);

Fos.write((文件内容).getBytes());

fos.close();

文件将被保存在软件的包内的cache文件夹内,文件名为info.txt。

也可以使用SDK提供的api来保存数据,首先介绍一下上下文context的概念:上下文就是一个类,可以获得应用程序的各种信息。里面提供了很多api来获得应用程序的环境,比如环境包名、安装路径、文件路径等。

Contextcontext=new Context();

//context.getFilesDir()帮助我们返回一个路径/data/data/包名/files/

Filefile=new File(context.getFilesDir(), “info.txt”);

FileOutputStreamfos=new FileOutputStream(file);

Fos.write((文件内容).getBytes());

fos.close();

文件将被保存在软件包内新建的files文件夹内。若要保存在cache文件夹内,可将getFilesDir()方法改为getCacheDir()。

这种保存文件的方法的好处是不用写很长的路径、更改包名时对文件保存也没有任何影响。

Cache文件夹内保存的都是缓存文件,清除缓存时里面的文件会被全部删除,所以需要长期保存的文件千万不要保存在此文件夹内。

版权声明:本文为博主原创文章,未经博主允许不得转载。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

FLV文件格式

1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  

android保存文件到手机内存 - HelloWorld