Android中存储数据的方式有多种不同的选项,可以根据实际需求选择不同的存储方式。下面就简要介绍一下在Android中存储数据的三种主要方式。
1. SharedPreferences
SharedPreferences 是 Android 提供的轻量级的数据存储方式,它可以存储的数据类型是字符串、整型、布尔型、浮点型等,使用起来非常简单方便。
访问 SharedPreferences 需要先获取 SharedPreferences 对象,获取方式如下:
```java
SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
```
其中,第一个参数是创建的文件名,第二个参数是操作模式。
写入数据可通过 SharedPreferences.Editor 生成一个编辑器对象,调用该对象的 putXXX() 方法存储数据。
```java
SharedPreferences.Editor editor = sp.edit();
editor.putString("username", "Tom");
editor.putInt("age", 18);
editor.putBoolean("married", false);
editor.apply();
```
读取数据可通过 SharedPreferences 对象的 getXXX() 方法。
```java
String username = sp.getString("username", "");
int age = sp.getInt("age", 0);
boolean isMarried = sp.getBoolean("married", false);
```
2. 文件存储
使用文件存储的方式,可将数据保存到本地文件系统中。在 Android 中,内部存储目录是每个应用程序私有的,并且只能被该应用程序访问。
文件存储有两种方式:内部存储和外部存储。
该方式需要先获取文件目录,再通过输出流写入数据。
```java
FileOutputStream fos = context.openFileOutput("filename", Context.MODE_PRIVATE);
fos.write("hello".getBytes());
fos.close();
```
读取数据可通过输入流的方式。
```java
FileInputStream fis = context.openFileInput("filename");
byte[] buffer = new byte[1024];
fis.read(buffer);
String result = new String(buffer);
fis.close();
```
3. SQLite
SQLite 是一个轻型的数据库引擎,它使用 SQL 语言操作数据。
使用 SQLite 存储数据需要先创建数据库,然后创建表格。
在 Android 中,使用 SQLiteDatabase 类的实例来操作数据库,可以执行 SQL 语句,并使用 Cursor 类查询数据库中的数据。
```java
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("path", null);
db.execSQL("CREATE TABLE IF NOT EXISTS person(_id integer primary key autoincrement, name varchar(20), age integer)");
db.execSQL("INSERT INTO person(name, age) VALUES(?, ?)", new Object[]{"Tom", 18});
Cursor cursor = db.rawQuery("SELECT name, age FROM person", null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
}
cursor.close();
```
综上所述,Android 的存储方式有多种,开发者可根据实际需求选择不同的存储方式。对于小量的数据,SharedPreferences 是一种轻量级好用的存储方式;对于大量的数据,则使用 SQLite 更合适;而涉及到文件时,可使用文件存储。