当前位置:实例文章 » JAVA Web实例» [文章]android数据的储存、文件的储存、SharedPreferences储存、SQLite的基本用法

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

其他信息

其他资源

Top