问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android中可以使用sharedpreferences类的实例完成文件读写操作吗

发布网友 发布时间:2022-05-06 13:07

我来回答

3个回答

热心网友 时间:2023-10-09 16:34

  很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件,通常会采用ini文件进行保存;如果是 j2se应用,通常会采用properties属性文件进行保存;如果是Android应用,Android 平台提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下。
  因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式分别是:
  Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
  Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
  Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
  MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
  MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
  如果希望文件被其他应用读和写,可以传入:
  openFileOutput("123.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);

  android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给它一个userid,当该应用要去访问其它资源(比如文件),就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences数据库都应该是私有的(位于/data/data //files),其它程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者 Context.MODE_WORLD_WRITEABLE ,只有这样其它程序才能正确访问。

  另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。
  如果访问其它应用中的Preference,前提条件是该preference创建时指定了Context.MODE_WORLD_READABLE或 者Context.MODE_WORLD_WRITEABLE权限。如有个为cn.itcast.action的应用使用下面语句创建了preference:
  getSharedPreferences("123", Context.MODE_WORLD_READABLE);
  其它应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference。如果不通过创建Context访问其他应用的preference,可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
  File xmlFile = new File(“/data/data//shared_prefs/itcast.xml”);//应替换成应用的包名

热心网友 时间:2023-10-09 16:34

应该不行吧,sharedpreferences知识用于存储变量使用的!

热心网友 时间:2023-10-09 16:35

可以读sp写入的文件
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何选手机号码才大吉好运发财的手机号码? 手机号码吉凶吉祥号富贵大吉的手机尾号有哪些? 鸽子吃卫生纸是缺什么 为什么鸽子不吃菜叶子而只吃玉米呢 电脑显示未安装evernote怎么回事请教高手我的印象笔记不能在台式电脑... 韩国是岛国吗 韩国最便宜的vps 电脑开机时出现rebootandselectproperbootdevice怎么办 reboot and sel... ...出现reboot and select proper boot device 高清的液晶电视最好的选择?? Android中接口为什么可以实例化,我很是不明白 Android 一个方法有多个实例化对象的方法该如何调用其中一个实例化对象的方法 android 关于内部类实例化的问题 汽车方向盘有必要装方向盘套吗? android sdk 演示实例怎么打开 方向盘套存在哪些危害? android 怎么获取service实例? 汽车方向有必要装方向盘套吗? android 实例 super 什么意思 android 代码布局简单的例子 android静态方法和实例方法的区别 方向盘套有用吗? 汽车方向盘装方向盘套好吗? 如何装方向盘套 方向盘套伤方向盘吗? 怎样区分h、f发音? 你好,我儿子4岁,拼音f还是说不出来,一出声就是嘚,该怎么办呢? 古代有哪些值得我们后人学习的家训? 终身努力,便成天才。这句话怎么理解? 在ASP.NET中如何实现修改用户密码并保存到数据库中 如何评价周杰伦新歌《英雄》的歌词 android实例app比较多的书 前几天周杰伦跟陈赫他们组队要玩英雄联盟,周杰伦用的是什么英雄? 《公主病》《英雄》和周杰伦其他歌比很逊色吗? 周杰伦英雄mp3高音质百度云谢谢 周杰伦玩英雄联盟使用的第一个英雄是什么呢? 宝宝新买的衣服需要过水吗 电脑开不了机发出三短一长的滴滴声,怎么办? 电脑开不了机,报警声是1长3短,是什么原因,怎么解决? 电脑嘀嘀响开不了机声音是两长三短什么原因 电脑开不了机,谁知道怎么回事? 男水瓶说我喜欢你 水瓶座男说喜欢我 我不知道是真的还是只是要玩玩我 请问水瓶男说真的有点喜欢你是什么意思? 电脑显示后缀名怎么设置win10 请有经验的朋友帮我分析分析:水瓶男说“喜欢你”会不会是开玩笑的? 水瓶男说喜欢你 但又说还没有准备好为什么? win10怎么设置调整文件的后缀名 水瓶座男生一直说喜欢你是认真的吗? 华为a71和华为a81型号数据线都是5A快充但是有什么区别??