android studio 笔记

 

第 8 章数据存储

应用程序的开发过程涉及数据的输入、输出和保存。Android提供了以下方式供开发者存取数据:SharedPreferences存储、文件存储、SQLite数据库存储和ContentProvider。

SharedPreferences是Android平台上一个轻量级的存储类,用于存储一些简单的key/value对(名值对)。它的value值只能是int型、long型、boolean型、string型和float型。应用程序中主要保存了一些常用的配置信息。

8.1.1 SharedPreferences和Editor
SharedPreferences是一个接口。要获取SharedPreferences的实例对象,需要调用context.get SharedPreferences(String name, int mode)方法,语法如下。

参数name表示如果该文件不存在,则会在调用SharedPreferences.Editor commit()方法后自动创建。新建的文件保存在“/data/data/项目包名/shared_prefs”目录下。

参数mode支持以下几个值。

MODE_PRIVATE:指定该SharedPreferences里的数据只能被本应用程序读写。
MODE_WORLD_READABLE:指定该SharedPreferences里的数据可以被其他应用程序读,但不可以被其他应用程序写。
MODE_WORLD_WRITEABLE:指定该SharedPreferences里的数据可以被其他应用程序读写。

        Android系统也支持使用文件存取数据。Activity提供了openFileOutput()方法,可以将数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件一样。文件可用来存放大量数据,如文本、图片、音频等。

文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法与Java中实现I/O的程序是完全一样的,Android提供了openFileInput()和openFileOutput()方法来读取设备上的文件。

至于文件的存储方式,在Android中有以下几种不同的用法:

● 直接使用java.io包提供的方法实现文件的增、删、读、写。

● 使用Android提供的openFileInput(String name)和openFileOutput(String name,int mode)方法读写数据。

● 从应用目录res中的raw文件夹中获取文件并读取数据。

● 从应用目录asset中获取文件并读取数据。

8.2.1 读写文件中的数据
Context提供了两种方法打开应用程序数据文件夹里的文件I/O流。

FileInputStream openFileInput(String name)方法:打开应用程序数据文件夹里“name”文件对应的输入流,语法如下。

FileOutputStream openFileOutput(String name int mode)方法:打开应用程序数据文件夹里“name”文件对应的输出流,语法如下。

第二种方法中的mode参数支持以下值。

MODE_PRIVATE:该文件只能被当前程序读写。
MODE_APPEND:该文件的内容可以追加。
MODE_WORLD_READABLE:该文件的内容可以被其他程序读。
MODE_WORLD_WRITEABLE:该文件的内容可以被其他程序读写。

(3)在FileStoreActivity中为两个按钮绑定监听(这里通过设置Button控件的onClick属性来绑定监听),以实现数据的保存和读取,代码如下。

在Android中允许用户将程序用到文件放到res中的raw文件夹中,随程序一起打包成.apk文件发布,可以通过ID读取

在asset目录下的文件在被打包成.apk文件时是不会被压缩的,而res下的文件在打包成.apk文件时会被压缩。

 

Android中提供了AssetManager类来处理应用对asset文件的访问。通过open(String fileName)方法,返回一个InputStream对象,代码示例为:

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值