/data/data/<包名>/files/
File internalFile = new File(context.getFilesDir(), "filename");
/storage/emulated/0/
(Android 10+ 需适配沙盒机制)Downloads
)需申请 WRITE_EXTERNAL_STORAGE
权限File externalFile = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), "image.jpg");
MODE_PRIVATE
(私有)或 MODE_MULTI_PROCESS
(多进程共享)SharedPreferences prefs = context.getSharedPreferences("config", Context.MODE_PRIVATE); prefs.edit().putString("key", "value").apply();
SQLiteDatabase db = SQLiteOpenHelper.getReadableDatabase(); db.execSQL("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)");
特点:
Dao
实现类API:
@Entity public class User { @PrimaryKey public int id; public String name; } @Dao public interface UserDao { @Insert fun insert(user: User) @Query("SELECT FROM User") fun getAllUsers(): List<User> }
Realm realm = Realm.getDefaultInstance(); realm.executeTransaction(r -> r.insert(new ChatMessage()));
维度 | 文件存储 | 数据库存储 |
---|---|---|
数据结构 | 扁平文件/键值对 | 表结构/对象关系 |
操作方式 | 文件流读写/SharedPreferences API | SQL语句/ORM框架 |
性能 | 小文件高效,大文件较慢 | 复杂查询高效,事务支持 |
适用场景 | 配置文件、临时缓存、媒体文件 | 结构化数据、多表关联、高频读写 |
数据一致性 | 手动管理,易出错 | 事务保障,ACID特性 |
解答:
解答:
Dao
接口、LiveData集成,降低开发复杂度