数据存储的五种方式
文件存储是一种较常用的方法,与Java中的文件存储类似,都是通过I/O 流的形式存储数据。
SharedPreferences是Android 提供的用来存储一些简单的配置信息的一种机制。
SQLite数据库是Android 自带的一个轻量级数据库,支持基本SQL 语法。Room 是官方对SQLite 一个框架。
ContentProvider是Android 四大组件之一,可以将自己的数据共享给其他应用程序。
网络存储是通过网络提供的存储空间来存储/获取数据信息。
文件读写:
String fileName = "data.txt";
String content = "helloworld";
FileOutputStream fos;
try {//写文件
fos = Activity.openFileOutput(fileName, MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
String content = "";
FileInputStream fis;
try {//读文件
fis = Activity.openFileInput("data.txt");
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
content = new String(buffer);
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
build.gradle文件中applicationId指定包名,位置在Device File Explorer中data/data/{applicationId}
SharedPreferences
SharedPreferences是Android 平台上一个轻量级的存储类。
用于存储应用程序的配置参数,如用户名、密码等。
通过key/value(键值对)的形式将数据保存在XML 文件中。
value值只能是float 、int 、long 、boolean 、String 、StringSet 类型数据。
存储数据:
SharedPreferences sp = Activity.getSharedPreferences("data",MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("name", "woshishabei");
editor.putInt("age", 8);
editor.commit();
获取数据:
获取数据可以直接通过SharedPreferences 对象的getXXX ()方法 来实现。
SharedPreferences sp = Activity.getSharedPreferences("data",MODE_PRIVATE);
String data = sp.getString("name","亲,没有这个键哦!");//第二个参数是在找不到第一个参数时返回的值
JSON
JSON即JavaScript Object Notation (对象表示法),是一种轻量级的数据交换格式。
JSON是基于纯文本的数据格式,它可以传输String 、Number 、Boolean 类型的数据,也可以 传输数组,或者Object 对象。
JSON文件的扩展名为.json 。
JSON分为JSON 对象和JSON 数组两种数据结构。
json的两种解析方式:
org.json,Android sdk 中为开发者提供的,通过使用JSONObject 和JSONArray 两个类完成 对JSON 数据的解析。
Gson,由Google 公司提供的,在使用Gson 库之前,首先需要将gson.jar 添加到项目中,然 后才能调用其提供的方法。
//解析json对象
Gson gson = new Gson();
Person person = gson.fromJson(json1, Person.class);
//解析json数组
Gson gson = new Gson();
Type listType = new TypeToken<list<integer>>(){}.getType();
//List<student> list = gson.fromJson(jsonData, new TypeToken<list<student>>(){}.getType());
List<integer> ages = gson.fromJson(json2, listType);
</integer></list<student></student></list<integer>
Original: https://blog.csdn.net/qq_45549584/article/details/124555970
Author: 黄昏四点半
Title: Android-数据存储
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815417/
转载文章受原作者版权保护。转载请注明原作者出处!