8.2文件存储 ■8.2.1内部存储 openFileOutput)函数 ·当调用write()函数时,如果写入的数据量较小,系统会把 数据保存在数据缓冲区中,等数据量积攒到一定程度时再 将数据一次性写入文件,因此,在调用clos0函数关闭文 件前,必须要调用flush0函数,将缓冲区内所有的数据写 入文件,否则可能会导致部分数据丢失
8.2 文件存储 n 8.2.1 内部存储 q openFileOutput()函数 n 当调用write()函数时,如果写入的数据量较小,系统会把 数据保存在数据缓冲区中,等数据量积攒到一定程度时再 将数据一次性写入文件,因此,在调用close()函数关闭文 件前,必须要调用flush()函数,将缓冲区内所有的数据写 入文件,否则可能会导致部分数据丢失
8.2文件存储 ▣8.2.1内部存储 口openFilelnput()函数 ·openFilelnput()函数为读取数据做准备而打开文件 openFilelnput()函数的语法格式如下 public FileInputStream openFileInput(String name) 口第1个参数也是文件名称,同样不允许包含描述路径的斜杠 口 使用openFileInput(函数打开已有文件,并以二进制方式读取 数据的示例代码如下 1 String FILE_NAME="fileDemo.txt"; 2 FileInputStream fis=openFileInput(FILE_NAME); 3 4 byte[]readBytes new byte[fis.available(]; 5 while(fis.read(readBytes)!=-1){ 6
8.2 文件存储 n 8.2.1 内部存储 q openFileInput()函数 n openFileInput()函数为读取数据做准备而打开文件 n openFileInput()函数的语法格式如下 public FileInputStream openFileInput (String name) q 第1个参数也是文件名称,同样不允许包含᧿述路径的斜杠 q 使用openFileInput()函数打开已有文件,并以二进制方式读取 数据的示例代码如下 1 String FILE_NAME = "fileDemo.txt"; 2 FileInputStream fis = openFileInput(FILE_NAME); 3 4 byte[] readBytes = new byte[fis.available()]; 5 while(fis.read(readBytes) != -1){ 6 }
8.2文件存储 ▣8.2.2外部存储 口程序在模拟器中运行前,还必须在AndroidManifest.xml 中注册两个用户权限,分别是加载御载文件系统的权限 和向外部存储器写入数据的权限 口AndroidManifest..xml的核心代码如下 1 <uses-permission android:name="android.permission.MOUNT UNMOUNT FILESYSTEMS"></uses-permission> 2 <uses-permission android:name="android.permission.WRITE EXTERNAL S TORAGE"></uses-permission
8.2 文件存储 n 8.2.2 外部存储 q 程序在模拟器中运行前,还必须在AndroidManifest.xml 中注册两个用户权限,分别是加载卸载文件系统的权限 和向外部存储器写入数据的权限 q AndroidManifest.xml的核心代码如下 1 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_ FILESYSTEMS"> </uses-permission> 2 <uses-permission android:name="android.permission.WRITE_EXTERNAL_S TORAGE"> </uses-permission>
8.2文件存储 ■8.2.3资源文件 口在/res/raw和/res/xml目录中保存着原始格式文件和XML 文件,这些文件是程序开发阶段在工程中保存的文件 0 原始格式文件可以是任何格式的文件,例如视频格式文 件、音频格式文件、图像文件或数据文件等等 口在应用程序编译和打包时,res/raw目录下的所有文件 都会保留原有格式不变。而res/xml目录下一般用来保 存格式化数据的XML文件,则会在编译和打包时将 XML文件转换为二进制格式,用以降低存储器空间占 用和提高访问效率,在应用程序运行的时候会以特殊的 方式进行访问
8.2 文件存储 n 8.2.3 资源文件 q 在/res/raw和/res/xml目录中保存着原始格式文件和XML 文件,这些文件是程序开发阶段在工程中保存的文件 q 原始格式文件可以是任何格式的文件,例如视频格式文 件、音频格式文件、图像文件或数据文件等等 q 在应用程序编译和打包时,/res/raw目录下的所有文件 都会保留原有格式不变。而/res/xml目录下一般用来保 存格式化数据的XML文件,则会在编译和打包时将 XML文件转换为二进制格式,用以降低存储器空间占 用和提高访问效率,在应用程序运行的时候会以特殊的 方式进行访问
8.2文件存储 ■8.2.3资源文件 口res/xml目录下的XML文件与其它资源文件有所不同,程序 开发人员不能够以流的方式直接读取,其主要原因在于 Android系统为了提高读取效率,减少占用的存储空间,将 XML文件转换为一种高效的二进制格式 在程序运行时读取res/xml目录下的XML文件 ·首先在/res/xml目录下创建一个名为people.xml的文件 XML文件定义了多个<person>元素,每个<person>元素都包含 三个属性name、age和height,分别表示姓名、年龄和身高 ▣res/xml/people.xml文件代码如下 :1 <people> 2 <person name=-"李某某"age="21"height=-"1.81"/> 3 <person name=-"王某某"age="25"height=-"1.76"> :4 <person name="张某某"age="20"height="1.69"> 5/people
8.2 文件存储 n 8.2.3 资源文件 q /res/xml目录下的XML文件与其它资源文件有所不同,程序 开发人员不能够以流的方式直接读取,其主要原因在于 Android系统为了ᨀ高读取效率,减少占用的存储空间,将 XML文件转换为一种高效的二进制格式 q 在程序运行时读取/res/xml目录下的XML文件 n 首先在/res/xml目录下创建一个名为people.xml的文件 n XML文件定义了多个<person>元素,每个<person>元素都包含 三个属性name、age和height,分别表示姓名、年龄和身高 q /res/xml/people.xml文件代码如下 1 <people> 2 <person name="李某某" age="21" height="1.81" /> 3 <person name="王某某" age="25" height="1.76" /> 4 <person name="张某某" age="20" height="1.69" /> 5 </people>