版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文件存储Android汇报人:XXX目录1234内部存储外部存储案例实现01章节PART内部存储添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字
仅能够被自身访问的私有文件,文件保存在设备的内部存储器上,在系统的/data/data/<packagename>/files目录中内部存储模式说明MODE_PRIVATE私有模式,缺陷模式,文件仅能够被文件创建程序访问,或具有相同UID的程序访问MODE_APPEND追加模式,如果文件已经存在,则在文件的结尾处添加新数据MODE_WORLD_READABLE全局读模式,允许任何程序读取私有文件MODE_WORLD_WRITEABLE全局写模式,允许任何程序写入私有文件publicvoidsave(Stringfilename,Stringcontent)throwsException{
//以私有模式建立文件
FileOutputStreamfos=openFileOutput(filename,Context.MODE_PRIVATE);
fos.write(content.getBytes());
//向文件中写入数据,将字符串转换为字节
fos.flush();
//将所有剩余的数据写入文件
fos.close();
//关闭FileOutputStream}publicStringread(Stringfilename)throwsException{
FileInputStreamfis=openFileInput(filename);
//创建输入流
byte[]input=newbyte[fis.available()];
//依据文件的大小建立数组
while(fis.read(input)!=-1){}
//调用read()方法读取字节
fis.close();//关闭FileInputStream
returnnewString(input);
}
获取“drawable”资源文件夹下的文件,可按如下方式获取文件对象:ApplicationInfoappInfo=getApplicationInfo();intresID=getResources().getIdentifier(name,"drawable",appInfo.packageName);内部存储读取src目录下的文件时时,可按如下方式获取:Stringpath="com/xiangmu/test.png";//图片存放的路径InputStreamis=getClassLoader().getResourceAsStream(path);//得到图片流资源中的Assets目录可以存放只读文件,此时获取文件的方式为:InputStreamis=getResources().getAssets().open(name);02章节PART外部存储添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字Android支持的外部存储,可以是SDCard等可以移除的存储介质,也可以是手机内存等不可以移除的存储介质,属于永久性的存储方式外部存储在Android6.0版本以下只需在配置文件AndroidManifest.xml中加入访问SDCard的权限如下:
<!--往SDCard写入文件权限-->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--往SDCard读取文件权限-->
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>Android11及以后,权限也变为MANAGE_EXTERNAL_STORAGE对Android6.0及以后的版本,即使在AndroidManifest.xml请求了权限,用户仍然可以控制哪些应用可以访问外部存储,所以即使请求了权限,也应该测试应用在没有获得权限的情况下的行为,所以还需在系统中动态申请访问权限。对Android10以后,外部存储设备权限的申请再发生了变化,改为MANAGE_EXTERNAL_STORAGE,甚至于文件访问方式也有变化。外部存储if(Build.VERSION.SDK_INT>=30){if(!Environment.isExternalStorageManager()){Intentintent=newtent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);startActivity(intent);}}elseif(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M)if(ActivityCompat.checkSelfPermission(MainActivity.this,"android.permission.WRITE_EXTERNAL_STORAGE")!=PackageManager.PERMISSION_GRANTED||ActivityCompat.checkSelfPermission(MainActivity.this,"android.permission.READ_EXTERNAL_STORAGE")!=PackageManager.PERMISSION_GRANTED)ActivityCompat.requestPermissions(MainActivity.this,newString[]{"android.permission.WRITE_EXTERNAL_STORAGE","android.permission.READ_EXTERNAL_STORAGE"},1);在请求权限时,需要处理用户的响应,这通常通过重写onRequestPermissionsResult方法来实现。@OverridepublicvoidonRequestPermissionsResult(intrequestCode,String[]permissions,int[]grantResults){super.onRequestPermissionsResult(requestCode,permissions,grantResults);if(requestCode==1){for(inti=0;i<permissions.length;i++){if((permissions[i].equals("android.permission.WRITE_EXTERNAL_STORAGE")||permissions[i].equals("android.permission.READ_EXTERNAL_STORAGE"))&&grantResults[i]==PackageManager.PERMISSION_GRANTED){Toast.makeText(this,""+"权限"+permissions[i]+"申请成功",Toast.LENGTH_LONG).show();}else{Toast.makeText(this,""+"权限"+permissions[i]+"申请失败",Toast.LENGTH_LONG).show();}}}}03章节PART案例实现添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字新建项目,设置信息修改代码,实现功能修改配置文件输入你的标题项目包名称命名为“com.example.Sample6_2”添加一个用于显示怎子的textviewif(Build.VERSION.SDK_INT>=30)
{if(!Environment.isExternalStorageManager())
{
Intentintent=newIntent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
startActivity(intent);}}
elseif(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M)
ActivityCompat.requestPermissions(MainActivity.this,newString[]{"android.permission.WRITE_EXTERNAL_STORAGE","android.permission.READ_EXTERNAL_STORAGE"},1);
<uses-permissionandroid:name="android.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏徐州徐工液压件有限公司招聘55人笔试历年备考题库附带答案详解
- 2026年马鞍山安徽和州控股集团有限公司公开招聘工作人员10名笔试历年备考题库附带答案详解
- 2026年度南平市武夷山水品牌运营管理有限公司正式员工招聘14人笔试历年典型考点题库附带答案详解
- 2026年东航股份市场营销部招聘笔试历年难易错考点试卷带答案解析
- 2026四川攀枝花华润水电开发有限公司社会招聘校园招聘8人笔试历年难易错考点试卷带答案解析
- 2026内蒙古呼和浩特鑫睿扬金属材料检测有限公司招聘75人笔试历年备考题库附带答案详解
- 2026年云南省景洪市高二化学下册期末考试模拟卷含答案(预热题)
- 2026年湖南省韶山市高二化学下册期末考试模拟考试卷必考题附答案
- 2026年吉林省图们市高二化学下册期末考试模拟测试卷有完整答案
- 2026年云南省泸水市高二化学下册期末考试模拟试卷及参考答案【研优卷】
- 2026年内蒙古自治区呼和浩特市初二学业水平地理生物会考试题题库(答案+解析)
- 人教版六年级下册数学思维拓展题型专项练习(含答案)
- JBT 14159.1-2022 空气分离设备能效限额 第1部分:外压缩流程设备
- 服务临床一线工作制度
- 产后专科工作制度
- 环境损害司法鉴定工程师岗位招聘考试试卷及答案
- 2026年英国a-level考试试题
- 碎石加工场安拆施工方案
- 有限空间作业监理实施细则
- 水产品质量安全监管细则培训
- 投资分析师金融行业绩效考评表
评论
0/150
提交评论