zoukankan      html  css  js  c++  java
  • android下的数据存储

    android下数据存储的几种方式:(简单讨论)

    1.文件
    举例:登陆时“记住密码”
    因为是基于Linux系统,直接建文件,文件会出现在项目工程;而手机登陆时,应该把文件放在手机里,通常数据放在data/data/包名/info.txt
    方便的API:
    context:上下文环境
    context.getFilesDir(); // data/data/<包名>/files/
    context.getCacheDir(); // data/data/<包名>/cache/
     
    context.openFileInput("info.txt");相当于 //快速得到输入流
    File filedir = context.getFileDir();
    File file = new File(filedir,"info.txt");
    FileInputStream fis = new FileInputStream(file);
     
     
    context.openFileOutput("info.txt",mode);  //快速得到输出流
    参数mode有多种固定的取值:WorldReadable....
     
    Linux下的文件模式:“-”表示文件,“d"表示目录
    ”-  rw-  ---   ---  “:
    rw-:表示当前用户文件的访问权,第三个参数表示文件是否可执行
    后面两个”---“:分别代表当前用户所在组权限和其他用户权限,参数也可为”r--,rw-...."
    linux命令行下可用chmod+“666”+文件名  改变其访问权,“666”代表:“- rw- (110,7)   rw-(110,7)   rw-(110,7)”
     
    在Android下,默认情况每个App都是一个单独的用户,具有自己特有的用户ID,可以说每个App都是一个安全沙箱,可以通过设置,是否暴露它拥有的文件信息
     
    把文件放在SD卡:(获取SD卡所在目录)
    需要在manifest.xml文件中配置SD卡的写权限
    方法在Environment.getExternalStorageState();
    ...
     
    不管把文件放在手机本身还是SD卡,首先要检查存储空间是否足够放你所要存的文件?(系统自带有获取剩余空间的功能,直接参考源代码(Eclipse里利用ctrl+H逐步搜系统应用的关键字符串))
     
    2.SharedPreference(参数)
    实现定时的数据更新,保存内容,如网页上5s更新一次
    Timer,TimerTask  (重写run方法),Timer.schedule
    this.getSharedPreferences(); Editor SharedPreferences.edit();
    editor.putString();editor.getString();...
    SharedPreference通过把数据存到一个新建的xml文件中来保存数据内容,类似涉及文件的I/O操作
     
    (待续...)
    3.SQLite数据库
    1)写一个数据库打开的帮助类,继承sqliteOpenHelper
    2)重写帮助类的oncreate方法,数据库表结构的初始化
    3)利用OpenHelper得到数据库,执行SQL语句
     
    4.内容提供者Content provider
     
    5.网络
  • 相关阅读:
    Cooperate with Myself
    A brief introduction of myself
    计算1+11+111+1111+........
    Jav实现F(n)=F(n-1)+F(n-2)+.....+F(1)+1
    查找二维数组中是否有符合的目标值
    排序算法
    时间复杂度
    Java代码实现单例模式
    查找一个字符串中重复出现字符的个数
    null,“”,empty的区别
  • 原文地址:https://www.cnblogs.com/allenpengyu/p/3581374.html
Copyright © 2011-2022 走看看