android数据的储存、文件的储存、SharedPreferences储存、SQLite的基本用法
发布人:shili8
发布时间:2025-03-14 20:30
阅读次数:0
**Android 数据储存**
在 Android 应用开发中,数据的储存是非常重要的一部分。不同的应用可能需要不同类型的数据储存方式来满足其需求。在本文中,我们将讨论四种常见的数据储存方法:文件的储存、SharedPreferences 储存、SQLite 的基本用法和 Android 数据的储存。
###1. 文件的储存在 Android 中,应用可以使用内部存储或外部存储来保存文件。内部存储是指应用自身的存储空间,而外部存储则是指设备上的 SD 卡或其他可移除的存储设备。
#### **内部存储**
要在内部存储中创建一个文件,我们需要使用 `File` 类。下面是一个示例:
java// 创建内部存储目录String path = getFilesDir().getPath(); File file = new File(path, "example.txt"); try { // 写入文件 FileOutputStream fos = new FileOutputStream(file); fos.write("Hello, World!".getBytes()); fos.close(); //读取文件 FileInputStream fis = new FileInputStream(file); byte[] bytes = new byte[(int) file.length()]; fis.read(bytes); fis.close(); System.out.println(new String(bytes)); } catch (IOException e) { e.printStackTrace(); }
#### **外部存储**
要在外部存储中创建一个文件,我们需要使用 `Environment` 类。下面是一个示例:
java// 创建外部存储目录String path = Environment.getExternalStorageDirectory().getPath(); File file = new File(path, "example.txt"); try { // 写入文件 FileOutputStream fos = new FileOutputStream(file); fos.write("Hello, World!".getBytes()); fos.close(); //读取文件 FileInputStream fis = new FileInputStream(file); byte[] bytes = new byte[(int) file.length()]; fis.read(bytes); fis.close(); System.out.println(new String(bytes)); } catch (IOException e) { e.printStackTrace(); }
###2. SharedPreferences 储存SharedPreferences 是一种轻量级的数据储存方式,适合保存少量的键值对。它是通过 `SharedPreferences` 类来实现的。
下面是一个示例:
java// 获取SharedPreferences实例SharedPreferences sharedPreferences = getSharedPreferences("example", MODE_PRIVATE); // 写入数据sharedPreferences.edit().putString("key1", "value1").apply(); //读取数据String value = sharedPreferences.getString("key1", ""); System.out.println(value);
###3. SQLite 的基本用法SQLite 是一种轻量级的关系数据库,适合在 Android 应用中使用。它是通过 `SQLiteDatabase` 类来实现的。
下面是一个示例:
java// 获取SQLiteOpenHelper实例public class ExampleDatabase extends SQLiteOpenHelper { public static final String DATABASE_NAME = "example.db"; private static final int DATABASE_VERSION =1; public ExampleDatabase(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表格 db.execSQL("CREATE TABLE example (_id INTEGER PRIMARY KEY, name TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 升级表格 db.execSQL("DROP TABLE IF EXISTS example"); onCreate(db); } } // 写入数据public class ExampleActivity extends AppCompatActivity { private SQLiteDatabase database; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取SQLiteOpenHelper实例 ExampleDatabase databaseHelper = new ExampleDatabase(this); // 打开数据库 database = databaseHelper.getWritableDatabase(); // 写入数据 ContentValues contentValues = new ContentValues(); contentValues.put("name", "John Doe"); database.insert("example", null, contentValues); } }
###4. Android 数据的储存Android 提供了一个名为 `ContentProvider` 的类,用于提供应用之间共享数据的方式。它是通过 `ContentResolver` 类来实现的。
下面是一个示例:
java// 获取ContentProvider实例public class ExampleProvider extends ContentProvider { private static final String AUTHORITY = "com.example.provider"; @Override public boolean onCreate() { // 创建表格 return true; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { // 查询数据 return null; } } //读取数据public class ExampleActivity extends AppCompatActivity { private ContentResolver resolver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取ContentProvider实例 Uri uri = Uri.parse("content://" + ExampleProvider.AUTHORITY); resolver = getContentResolver(); //读取数据 Cursor cursor = resolver.query(uri, null, null, null, null); } }
上述示例代码展示了四种常见的 Android 数据储存方式:文件的储存、SharedPreferences 储存、SQLite 的基本用法和 Android 数据的储存。每种方法都有其特点和适用场景,选择合适的方法可以帮助开发者更好地管理应用中的数据。