Android学习笔记(41):File存储

Java为我们提供了一套完备的IO流系统,方便我们访问和存储文件,这种方式在Android上依旧可以使用。关于Java的IO流系统,这里就不多做介绍了。

 

Android系统不仅支持标准Java的IO类和仿法,还提供了能够简化读写流式文件过程的函数,主要来介绍下面这两个函数:

openFileOutput()

openFileInput()

 

(1)public FileOutputStream openFileOutput (String name, int mode)创建和写入文件

打开应用程序的数据文件夹下对应name文件的输出流。利用Java的方式写入文件。

如果指定的文件存在,直接打开文件准备写入数据。

如果指定的文件不存在,则创建一个仅能够被自己访问的私有文件。文件默认保存在Android系统的/data/data/<package name>/file目录中。

 

mode参数指定打开文件的模式,有如下的值可选:

MODE_PRIVATE :私有模式,文件仅能够被创建文件的程序访问。

MODE_APPEND :追加模式,如文件已存在,则在文件的结尾处添加新数据。

MODE_WORLD_READABLE :全局读模式,允许任何程序读取私有文件。

MODE_WORLD_WRITEABLE :全局写模式,允许任何程序写⼊私有文件。

 

write() :将数据写入文件。

flush() :将缓冲中的数据写入文件。

close() :关闭FileOutputStream。

 

2public FileInputStream openFileInput (String name) 读取文件

打开应用程序的数据文件夹下对应name文件的输入流。读取文件的方式与Java读取文件的方式相同。

 

(3除了这主要的两个元素,context还提供了如下的方法供我们访问文件:

getDir(String name, int mode):获取或创建name对应的子目录。

File getFilesDir():获取数据文件夹的绝对路径。

String[] fileList():返回数据文件夹下的全部文件。

deleteFile(String name):删除指定文件。

 

(4)读取SD卡上的文件

为了读取SD卡上的文件,我们需要在AndroidManifest.xml中添加读写SD卡的权限:

<!--SD卡中创建和删除文件的权限-->

<user-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS”/>

<!--SD卡写入数据的权限-->

<user-permission android:name=”android.permission.WRITE_EXTERANL_STORAGE”/>

读取SD卡上文件的步骤如下:

1.调用EnvironmentgetExternalStorageState()方法判断手机是否有SD卡,应用程序是否具有读写SD卡的权限,如Environment.getExternalStorageState(Environment.MEDIA_MOUNTED)

2.调用EnvironmentgetExternalStorageDirectory()方法来获取SD卡的目录。

3.使用FileInputStreamFileOutputStreamFileReaderFileWriter读写SD卡上的文件。

你可能感兴趣的:(android,存储,IO流)