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 数据的储存。每种方法都有其特点和适用场景,选择合适的方法可以帮助开发者更好地管理应用中的数据。

