Android中的数据持久化技术
来源:互联网 发布:百度糯米总显示没网络 编辑:程序博客网 时间:2024/06/11 00:45
Android中的数据持久化技术
- Android中的数据持久化技术
- 文件储存
- 具体用法
- SharedPreferences储存方案
- 具体用法
- 文件储存
文件储存
- 就是用java中的流来对数据进行操作
- 文件储存是将数据原封不动的存储
- 一般用于对简单的文本,二进制进行存储
- 如果你需要用文本储存方式存储比较复杂的数据,那就自己要有格式,方便解析
- 默认放在内存卡data/data//file/
具体用法
Context中提供了openFileOutput和openFileInput方法,
直接看代码吧
需求:用文件储存的方式储存一段文本,然后用文本储存的方式读出文本
需要注意的一点,在output流没有关闭时,是无法用input流读取output中的数据的
原因就是,只有流关闭后,才会保存数据到储存设备中
~~~java
//文件流,主要将数据原封不动的存储,所以底层还是字节流
FileOutputStream out;
FileInputStream in;//字符流缓冲区 BufferedWriter bw=null; BufferedReader br=null; String data ="This is ma data"; try{ //获取文件流,第一个参数是文件名,第二个是操作模式 //MODE_PRIVATE:同名文件覆盖,表示只有当前应用可以读,可以理解为文件内容是private的无法访问, // 就不能追加,所以就直接覆盖 //MODE_APPEND:由权限名可知,append应用到结尾,意思是有同名文件 //就在结尾追加 out=openFileOutput("data",MODE_APPEND); //将文件流传到转换流中,再用转换流将二进制流转换成字符流 //因为这里存储的都是字符,所以转换后用带有字符缓冲区的流来操作 bw=new BufferedWriter(new OutputStreamWriter(out)); bw.write(data); }catch (IOException e){ e.printStackTrace(); }finally {//一定会执行的代码块 try{ if(bw!=null) //记得关闭流 bw.close(); }catch (IOException e){ e.printStackTrace(); } } //读 try{ in=openFileInput("data"); br=new BufferedReader(new InputStreamReader(in)); String line=""; StringBuffer sb=new StringBuffer(); while((line=br.readLine())!=null){ sb.append(line); } Toast.makeText(this, sb.toString(), Toast.LENGTH_SHORT).show(); }catch (IOException e){ e.printStackTrace(); }finally { if(br!=null) try { br.close(); }catch (IOException e){ e.printStackTrace(); } }
}
~~~
SharedPreferences储存方案
- SharedPreferences是一种以xml格式,以键值对的形式存储数据的存储方案
- 这方案支持的数据形式很多,比如整型,布尔型,字符型,意思是你存的是什么类型,取出来也是什么类型
- 默认放在内存卡data/data//shared_prefs/
具体用法
- 存数据
获取SharedPreferences实例
~~~java
//一共有3种方法//调用Activity的方法
//这种方法只接收一个参数,设置权限,目前也只有一种权限
//该方法会自动将文件以活动名称命名
SharedPreferences sp=getPreferences(MODE_PRIVATE);//调用Context方法
//接收两个参数,文件名,权限
SharedPreferences sp=getSharedPreferences(“data”,MODE_PRIVATE);//调用PreferencesManager类的静态方法,传入Context
SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this);
~~~获取Editor,添加数据,保存数据
~java
SharedPreferences.Editor e;
e= sp.edit();//获取实例
e.putBoolean("check",true); e.putString("account","jj";
e.putString("password","fd");
e.apply();//将数据保存
~
取数据
- 用SharedPreferences实例直接通过键取值
~java
sp.getString("account","");//第二个参数是没有取到值后的默认值
~
- Android中的数据持久化技术
- Android中的数据持久化技术
- android 数据持久化技术
- Android数据存储的持久化技术
- android的数据持久化技术
- 数据持久化技术
- Android中的数据持久化(一)
- Android 数据持久化技术(即数据存储方式)
- Android 数据持久化技术(即数据存储方式)
- Android持久化技术
- Android 持久化技术
- Android之数据持久化技术一(文件存储)
- Android学习:数据持久化技术(一,File & SharePreference)
- Android--持久化技术之文件存储-数据读取
- Android 开发实践 数据存储方案 持久化技术
- android 摘要----数据存储全方案,详解持久化技术
- Android之数据存储——持久化技术
- 总结android数据持久化技术(1)
- 【BZOJ2789】【树状数组】[Poi2012]Letters 题解
- 【二维树状数组】BZOJ1452 [JSOI2009]Count
- 千里之路—— Eclipse开发JAVA,如何新建java项目?
- Linux防火墙开放端口号 及 常用端口号详解
- SPOJ DISUBSTR
- Android中的数据持久化技术
- Unity3d背包系统系统(〇)——功能演示
- bzoj 2073(状压dp)
- 在CENTOS7上玩转Ethereum区块链(5): 实验一--在两台主机上分别部署eth rpc与truffle合约服务
- MySQL安装配置
- Broadcast Receiver使用
- 建立枚举类型Weekday,假设今日为星期二,计算10天后为星期几。
- HTTP协议(转)
- Leetcode32. Longest Valid Parentheses