在开发Android应用程序时,我们有四种基本的持久化数据存储方法可以选择:SharedPreferences,内部存储,外部存储和SQLite数据库。
- SharedPreferences:是一种轻型的数据存储方式,主要用于保存应用的一些常用状态,例如保存用户的登录状态,保存设置参数等。数据以键值对的形式进行存储,可以保存基本的数据类型。
使用如下:
创建SharedPreferences对象:
SharedPreferences sharedPreferences = getSharedPreferences(“名称”,MODE_PRIVATE);
保存数据:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(“key”,”value”);
editor.apply();
读取数据:
String value = sharedPreferences.getString(“key”,”默认值”);
- 内部存储:内部存储是指将数据存储在设备的文件系统中,其他应用无法访问这些数据,通常用来存储一些敏感数据或者用户的私人数据。
使用如下:
保存数据:
FileOutputStream fileOutputStream = openFileOutput(“fileName”, MODE_PRIVATE);
fileOutputStream.write(“string”.getBytes());
fileOutputStream.close();
读取数据:
FileInputStream fileInputStream = openFileInput(“fileName”);
int len = 0;
byte[] buf = new byte[1024];
StringBuilder builder = new StringBuilder();
while((len = fileInputStream.read(buf)) != -1){
builder.append(new String(buf, 0, len));
}
fileInputStream.close();
- 外部存储:外部存储是指将数据存储在外置的存储介质,例如SD卡,其他应用可以访问到这些数据。
使用如下:
File file = new File(Environment.getExternalStorageDirectory(), “fileName”);
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(“string”.getBytes());
fileOutputStream.close();
- SQLite数据库:Android平台提供了SQLite数据库供我们使用,对于一些结构化的数据,我们一般会存储在数据库中。
使用如下:
创建SQLiteOpenHelper的子类:
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table user(id int,name varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists user");
onCreate(db);
}
}
创建数据库:
DatabaseHelper helper = new DatabaseHelper(this, “dbTest.db”, null, 1);
SQLiteDatabase db = helper.getWritableDatabase();
添加数据:
ContentValues values = new ContentValues();
values.put(“id”, 1);
values.put(“name”, “xiaoming”);
db.insert(“user”, null, values);
查询数据:
Cursor cursor = db.query(“user”, null, null, null, null, null, null);
while (cursor.moveToNext()){
int id = cursor.getInt(cursor.getColumnIndex(“id”));
String name = cursor.getString(cursor.getColumnIndex(“name”));
}
Android 有很多种存储方式,包括 Shared Preferences,Internal Storage,External Storage,SQLite 数据库和网络存储等。
-
Shared Preferences:存储少量的数据,在应用重新启动后依然存在。
使用方法:调用 Context 的 getSharedPreferences() 方法可以获取到 SharedPreferences 对象。然后通过 SharedPreferences.Editor 对象来存储和获取数据。
-
Internal Storage:每个 Android 应用都有一个独立的内部存储空间,其它应用无权访问。通常用于存储较大的文件。
使用方法:通过 FileOutputStream 调用 openFileOutput() 方法写入数据,通过 FileInputStream 调用 openFileInput()方法读取数据。
-
External Storage:如果应用具有相应的权限,那么所有的应用都可以访问外部存储空间。
使用方法:首先要声明权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
,然后通过 Environment 类的 getExternalStorageDirectory() 获取到外部存储空间的路径。 -
SQLite 数据库:Android平台变提供了SQLite数据库存储方式,适合存储结构化的数据。
使用方法:通过继承 SQLiteOpenHelper 类并实现 onCreate() 和 onUpgrade() 方法来创建和更新数据库。
-
网络存储:如果你的数据需要在网络上共享,那么可以采用网络存储的方式。
使用方法:通过 HttpURLConnection 或 HttpClient 来进行网络访问,然后将数据存储在服务器端。
代理商通常并无涉及到这些具体的开发细节,他们提供的是阿里云相关产品和服务的销售和客户支持。如果你在使用阿里云服务时遇到问题,建议直接联系阿里云的技术支持。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/160071.html