android保存文件到手机内存

Wesley13
• 阅读 588

首先要指定文件保存的位置,在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文件夹内保存的都是缓存文件,清除缓存时里面的文件会被全部删除,所以需要长期保存的文件千万不要保存在此文件夹内。

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

点赞
收藏
评论区
推荐文章
技术小男生 技术小男生
4个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
Jacquelyn38 Jacquelyn38
1年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
blmius blmius
1年前
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
Wesley13 Wesley13
1年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
1年前
Android开发之SharedPreferences
1、使用SharedPreferences进行数据存储Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<packagename/shared\_prefs目录下。
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序selectfromtable_nameorderiddesc;2.按照指定(多个)字段排序selectfromtable_nameorderiddesc,statusdesc;3.按照指定字段和规则排序selec
Stella981 Stella981
1年前
Android文件操作
Android文件操作私有文件备注因为手机内部存储的根目录是只读的,所以需要根据规范(/data/data/报名/...)创建文件到APP私有文件夹filesDir(data/data/包名/files)用来保存重要的配置文件cacheDir(data/data/包名/cache)
Wesley13 Wesley13
1年前
Java多线程导致的的一个事物性问题
业务场景我们现在有一个类似于文件上传的功能,各个子站点接受业务,业务上传文件,各个子站点的文件需要提交到总站点保存,文件是按批次提交到总站点的,也就是说,一个批次下面约有几百个文件。      考虑到白天提交这么多文件会影响到子站点其他系统带宽,我们将分站点的文件提交到总站点这个操作过程独立出来,放到晚上来做,具体时间是晚上7:00到早上7:00。
3A网络 3A网络
4个月前
理解 virt、res、shr 之间的关系(linux 系统篇)
理解virt、res、shr之间的关系(linux系统篇)前言想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过t
3A网络 3A网络
4个月前
开发一个不需要重写成 Hive QL 的大数据 SQL 引擎
开发一个不需要重写成HiveQL的大数据SQL引擎学习大数据技术的核心原理,掌握一些高效的思考和思维方式,构建自己的技术知识体系。明白了原理,有时甚至不需要学习,顺着原理就可以推导出各种实现细节。各种知识表象看杂乱无章,若只是学习