跟我学Android之十二 文件解析与处理

视频课:https://edu.csdn.net/course/play/7621
android

本章内容缓存


第1节  File Explorer操做并发

第2节  SharedPreferencesapp

第3节  普通文件操做ide

第4节  SD卡读写操做性能

本章目标
this

熟练掌握 FileExplorer 的用法spa


熟练掌握 SharedPreference 文件操做。操作系统


熟练掌握普通文件的读写操做。.net


熟练掌握 SD 卡读写操做的方法。



FileExplorer操做

查看文件结构


建立文件夹


 入文件


导出文件及文件夹


删除文件



SharedPreferences概述

SharedPreferences主要用于保存相似配置信息的内容,SharedPreferences以XML格式保存数据,保存在/data/data/<package>/shared_prefs目录中,跟Properties中的信息相似,主要是键值对



读取SharedPreferences


首先经过Context. getSharedPreferences方法得到对象


第一个参数是文件名,须要包含后缀名(自动设置为xml)


第二个参数是访问模式,和普通文件的访问模式相同


经过SharedPreferences中的方法读取数据



SharedPreferences sp = getSharedPreferences("config",

        Context.MODE_PRIVATE);

Stringusername = sp.getString(“username”,“root”);

Stringpassword = sp.getString(“password”,“123456”);


写入SharedPreferences


首先经过Context. getSharedPreferences方法得到对象


获取对象时采用写模式打开


经过SharedPreferences得到Editor对象


Editor对象中包含了写数据的方法


数据写入完成后必定要执行commit方法让数据生效



SharedPreferences sp = getSharedPreferences("config",

        Context.MODE_PRIVATE);

Editor editor =sp.edit();

editor.put(“username”, “root”);

editor.put(“password”, “123456”);

editor.commit();

pe:solid;mso-style-textfill-fill-themecolor:text1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%'>方法让数据生效   

外部访问SharedPreferences

在一个应用中访问另外一个应用的SharedPreferences数据

经过Context. createPackageContext 建立Context的实例

第一个参数是另外一个应用的package名

第二个参数是选项标志

CONTEXT_INCLUDE_CODE

CONTEXT_IGNORE_SECURITY

经过创建的Context对象访问SharedPreferences



Contextcontext = createPackageContext(PKGNAME,

        CONTEXT_IGNORE_SECURITY);

SharedPreferences cfg = context.getSharedPreferences(

        PREFERENCE_NAME, MODE); 


在一个应用中访问另外一个应用的SharedPreferences数据

u关于权限的几个注意点

Ø两个应用的android:sharedUserId的内容要相同

Ø双方使用MODE_WORLD_READABLE或MODE_WORLD_WRITEABLE模式读写内容



利用openFileInput读取文件

利用openFileInput读取文件

u这是Context中的一个方法

Ø可以从应用相关的路径中打开一个文件输入流

u文件位置

Ø/data/data/<package>/files

u返回值是一个FileInputStream的对象

Ø这是一个文件输入字节流



利用openFileInput读取文件

u读取文件的一个示例



FileInputStream inputStream = this.openFileInput(fileName); 

byte[]bytes = new byte[1024]; 

ByteArrayOutputStream os= new ByteArrayOutputStream(); 

while(inputStream.read(bytes)!= -1) { 

        os.write(bytes, 0, bytes.length); 

inputStream.close(); 

os.close(); 

Stringcontent = new String(os.toByteArray());

 

showTextView.setText(content);


利用openFileOutput方法写入文件

u文件不存在时自动建立

u方法的第二个参数为打开模式

ØMODE_PRIVATE只能建立它的应用访问,重复写入时会文件覆盖

ØMODE_APPEND  私有访问,重复写入时会在文件的末尾进行追加

ØMODE_WORLD_READABLE公用模式,可读

ØMODE_WORLD_WRITEABLE公用模式,可读写

u一般建议使用私有模式

Ø公用模式下操做文件很危险,由于一旦并发将会带来程序的漏洞



利用openFileOutput方法写入文件

u写入文件示例



FileOutputStream outputStream = openFileOutput(fileName, 

        Activity.MODE_PRIVATE); 

outputStream.write(content.getBytes()); 

outputStream.flush(); 

outputStream.close();

合理利用缓存

u文件的读写是对存储设备的访问

Ø输入输出的速率比较低

Ø频繁访问时会影响性能

u适当使用缓存提交效率

Ø将文件中须要频繁访问的内容读入内存

Ø在内存中进行数据的操做

Ø按期或者须要时再写入文件

Ø减小文件的输入输出次数

u可是缓存不能太大,以避免占用太多资源致使系统性能降低

浏览SD卡上的文件

uSD卡一般是手机的扩展存储

u挂载到手机操做系统的文件系统下/mnt/sdcard/

uSD卡上的目录对全部应用都是可写的

u使用File类浏览SD卡上的目录内容

mso-color-index:1;mso-font-kerning:12.0pt;language:zh-CN;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:text1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%'>公用模式下操做文件很危险,由于一旦并发将会带来程序的漏洞  

Filedir = new File(“/mnt/sdcard”);

String[]s = dir.list();

读取SD卡上的文件

u使用FileInputStream或者FileReader进行文件读取


FileInputStream in = new FileInputStream(“/mnt/sdcard/……”);byte[] bytes = new byte[1024];ByteArrayOutputStream os= new ByteArrayOutputStream();while (in.read(bytes) != -1) {os.write(bytes, 0, bytes.length);}in.close();os.close();String content = new String(os.toByteArray());showTextView.setText(content);




将文件保存到SD卡上

u使用FileOutputStream或者FileWriter进行文件写入

FileOutputStream out = new FileOutputStream(“/mnt/sdcard/..”);out.write(content.getBytes());out.flush();out.close();
相关文章
相关标签/搜索