我在想,如果我存储一个视频或电影并打开那个盒子,该视频将存储在我的 RAM 中,否则它只会从 ROM 加载。我有点困惑:谁能给我解释一下吗?
我认为您误解了数据库的概念。
任何数据库解决方案都是仅存储纯信息组织数据。不存储大文件,例如媒体、文档或图像。
相反,存储不需要组织,所有文件都可以存在于一个文件夹中。
因此,您使用的任何数据库解决方案都始终存储数据类型。在这种情况下,您可以拥有一个数据模型,这也是使用数据库时必不可少的东西。
@HiveType(typeId: 0)
class Movie extends HiveObject {
@HiveField(0)
String name;
@HiveField(1)
int path;
}
Run Code Online (Sandbox Code Playgroud)
由于 Hive 支持 Dart 对象,因此您不必将数据转换为 Json 或任何类似的字符串。
因此,当您从 Storag 获取文件时,您可以使用path_provider或 从文件本身获取路径,然后创建一个对象
File file = await // get the movie file using any means
final path = file.path
var box = await Hive.openBox('Movies');
var m = Movie()
..name = 'Batman Begins'
..path = path ;
box.add(m);
m.save();
Run Code Online (Sandbox Code Playgroud)
希望这能消除您的疑虑。