Android文件存储,分类,优缺点,何时使用。

首先,使用SharedPreferences存储数据。

适用范围:保存少量数据,这些数据的格式很简单:字符串类型,基本类型值。比如应用程序的各种配置信息(比如是否开启音效,是否使用震动效果,小游戏的玩家积分等。),解锁订单的密码等。

核心原理:保存基于XML文件存储的键-值键-值对数据,通常用于存储一些简单的配置信息。通过DDMS的文件资源管理器面板,展开文件浏览树,很明显SharedPreferences数据总是存储在/data/data//shared_prefs目录下。SharedPreferences对象本身只能获取数据,不支持存储和修改。存储修改是通过SharedPreferences.edit()获取的内部接口编辑器对象实现的。SharedPreferences本身就是一个接口,所以程序不能直接创建SharedPreferences的实例。它只能通过Context提供的getSharedPreferences(String name,int mode)方法获取SharedPreferences的实例,其中name表示要操作的xml文件名,第二个参数如下:

语境。MODE_PRIVATE:指定SharedPreferences数据只能由该应用程序读写。

语境。MODE_WORLD_READABLE:指定其他应用程序可以读取SharedPreferences数据,但不能写入。

语境。mode _ world _ writable:指定其他应用程序可以读写SharedPreferences数据。

与SQLite数据库相比,SharedPreferences对象更加方便简洁,省去了创建数据库、创建表格、编写SQL语句等诸多操作。但是SharedPreferences也有自己的缺点,比如它存储boolean、int、float、long、String五种简单数据类型的功能,比如它不能进行条件查询。所以SharedPreferences的数据存储操作再简单,也只能是存储方式的补充,不能完全替代SQLite数据库等其他数据存储方式。

第二种:文件存储数据。

您可以创建一个文件,将数据保存在设备自带的存储设备或外部存储设备中。同样在默认状态下,文件不能在不同程序之间共享。

写文件:调用Context.openFileOutput()方法,根据指定的路径和文件名创建一个文件,这个方法会返回一个FileOutputStream对象。

读取文件:调用Context.openFileInput()方法,通过指定的路径和文件名返回一个标准的Java FileInputStream对象。

第三种:SQLite存储数据。

SQLite数据库数据库。Android对数据库的支持非常好。它集成了SQLite数据库本身,每个应用程序都可以方便地使用它。或者更准确的说,Android完全依赖于SQLite数据库,它所有的系统数据和使用的结构化数据都存储在数据库中。它有以下优点:a、它无疑是高效的;b、非常适合存储结构化数据;c,可以方便地在不同的活动甚至不同的应用程序之间传输数据。

第四种:ContentProvider

Android系统中所有应用程序都可以共享的一种数据存储模式。因为数据在应用程序中通常是私有的,所以这种存储模式很少使用,但它也是一种基本的存储模式。例如,音频、视频、图片和地址簿一般都可以这样存储。每个ContentProvider将提供一个公共的* * * Uri(打包成一个Uri对象)。如果应用程序需要享受数据,它需要为这些数据定义一个URI,然后其他应用程序将通过ContentProvider传入这个URI来操作数据。

综上所述,文件适合存储一些简单的文本数据或者二进制数据,SharedPreferences适合存储一些键值对,数据库适合那些复杂的关系数据。