Android移动应用开发教程 课件 6.2、文件存储_第1页
Android移动应用开发教程 课件 6.2、文件存储_第2页
Android移动应用开发教程 课件 6.2、文件存储_第3页
Android移动应用开发教程 课件 6.2、文件存储_第4页
Android移动应用开发教程 课件 6.2、文件存储_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文件存储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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论