Android 持久化技术(一)
来源:互联网 发布:俄罗斯人看中国 知乎 编辑:程序博客网 时间:2024/06/05 07:09
Android的持久化技术分为以下5种:
- 文件存储
- SharedPreferences
- 数据库存储
- ContentProvider
- 网络存储
文件存储
Context类提供了一个openFileOutput()的方法,可以将数据存储到指定发文件当中。该方法接受两个参数,第一个为文件名,文件默认保存在/data/data//files目录下,第二个参数是文件的操作模式,可选MODE_PRIVATE和MODE_PRIVATE。其中默认为MODE_PRIVATE,表示如果该文件已存在即覆盖该文件,MODE_PRIVATE表示在文件若已存在即在文件中追加内容;
//保存数据 public void save(String data) { FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(data); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (writer != null) { try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } //读取数据 public String getData() { FileInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { in = openFileInput("data"); reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while ((line = reader.readLine()) != null) { content.append(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return content.toString(); }
SharedPreferences
不同于文件存储,SharedPreferences 是使用键值对的方式来存储数据的
Android中提供了三种方式来获得SharedPreferences 对象
Context中的getSharedPreferences ()
该方法接受两个参数,第一个为文件名,文件默认保存在/data/data//shared_prefs目录下,第二个参数是文件的操作模式,可选MODE_PRIVATE。
Activity类中的getPreferences()
该方法和getSharedPreferences()很相似,只接收一个操作模式参数,自动将当前类名作为文件名。
PreferencesManager中的getDefaultSharedPreferences()
该方法是一个静态方法,接受一个Context参数,以应用程序的包名作为前缀来命名文件名。
public void save(){ //获取SharedPreferences.Editor对象 SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit(); //添加数据 editor.putString("name","Tom"); editor.putInt("age",18); //提交 editor.apply(); }
public void getData(){ SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE); String name = pref.getString("name",""); int age = pref.getInt("age",0); Log.d("MainActivity", "name is "+name+",age is "+age); }
阅读全文
0 0
- Android 持久化技术(一)
- Android之数据持久化技术一(文件存储)
- Android学习:数据持久化技术(一,File & SharePreference)
- Android持久化技术之SQLite数据库存储(一)
- android 持久化技术(一)文件存储
- Android持久化技术
- Android 持久化技术
- Android 持久化技术(二)
- android 数据持久化技术
- Android数据持久化存储(一)
- Android数据的持久化(一)
- ios 的数据持久化技术(一)
- 数据的持久化技术(一)文件存储
- Java对象持久化技术Hibernate 一
- Java对象持久化技术Hibernate 一
- jsp Hibernate 数据持久化技术(一)
- Android 数据持久化技术(即数据存储方式)
- 总结android数据持久化技术(1)
- Spring RestTemplate作为负载平衡器客户端
- ABAP 动态生成内表的几种方法(Several Methods of Dynamic Internal Table Creation)
- 虚拟数字货币开发小专家薪捷讲述,关于虚拟数字货币之王比特币论文区块链挖矿原理的那些事儿
- MVC使用Newtonsoft无需实体类,实现JSON数据返回给前端页面使用
- mysql触发器创建、查看、删除语法
- Android 持久化技术(一)
- 破解10亿数据点数据实时可视化
- HTTP协议小结
- 解决eclipse报错Cannot change version of project facet Dynamic 2.5
- 搭建及使用K8s集群 <k8s dashboard pod方式部署>
- 12c-nonCDB-linux数据泵impdp导入12c-PDB-win
- javascript深入理解js闭包
- mysql分表和表分区
- C# SFTP