Android Studio(数据存储) |
您所在的位置:网站首页 › android的数据库存储方式有哪些类型和特点 › Android Studio(数据存储) |
数据存储方式
方式特点文件存储openFileInput()和openFileOutput()进行存写SharedPreferences以XML格式进行存储SQLite运算快、占用资源少、支持基本的sql语法ContentProvider可用于应用之间的数据交互网络存储通过网络提供的存储空间来存储/获取数据信息
文件存储
主要语法
FileOutputStream fos = openFileOutput(String filename,int mode);
FileInputStream fis = openFileInput(String filename);
modedescContext.MODE_PRIVATE该文件为当前程序私有Context.MODE_APPEND该文件的内容可以追加Context.MODE_WORLD_READABLE该文件的内容可以被其他程序“读”Context.MODEL_WORLD_WRITEABLE该文件的内容可以被其他程序“写”
代码示例
//参考对象为内存:从内存输出即写入、输入到内存即读取
// 1.写入数据到文件
String fileName = "myfile.txt";
String data = "Hello, World!";
try {
FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);
fos.write(data.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
// 2.从文件中读取数据
try {
FileInputStream fis = openFileInput(fileName);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
fis.close();
String savedData = sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
SharedPreferences
简要
以XML方式的轻量级存储,适合存储少量的键值对数据,适用于简单的配置信息、用户偏好设置和应用程序状态等,比如登录的用户名。 语法 // 存储数据到 SharedPreferences SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("key", "value"); editor.apply(); // 从 SharedPreferences 中读取数据 String savedValue = sharedPreferences.getString("key", "default value"); SQLite 语法 // 1. 创建实现类extends SQLiteOpenHelper public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "myDb.db"; private static final int DATABASE_VERSION = 1; private Context context; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); this.context = context; } @Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } // 2. 创建实现类对象,并调用相关方法实现CRUD DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.rawQuery("SELECT * FROM myTable", null); while (cursor.moveToNext()){ int id = cursor.getInt(cursor.getColumnIndexOrThrow("id")); ... } cursor.close(); ContentValuesSQLiteDatabase对象自身提供了一些CRUD方法,像表记录添加、修改,理应上需要我们传入多个字段(包括字段名和字段值),而为了解决这个问题就有了ContentValues对象,它允许我们给其增加多个键(字段名)、值(字段值); 所以当我们执行这个SQLiteDatabase对象的自身提供的添加或修改方法只用传入ContentValues即可。 可以参考下面代码例子: ContentValues values = new ContentValues(); values.put("name", "John Doe"); values.put("age", 30); values.put("email", "[email protected]"); // 插入数据到数据库 long newRowId = db.insert("myTable", null, values); 后言至于ContentProvider和网络存储这两种存储方式只有结合具体的需求项目才能更好地学习,这里就不介绍了,需要学习的可以自己搜索相关文章具体学习。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |