Android数据存储之文件存储

Android中读取/写入文件的方法,与Java中的I/O是一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。但是在默认状态下,文件是不能在不同的程序之间共享的,以上两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将会抛出FileNotFoundException异常。创建的文件存放在/data/data/<package name>/files目录下。

返回值

函数

备注

FileInputStream

openFileInput(String name)

打开指定的私有文件输出流。

name:要打开的文件名,不能包含路径分隔符。

FileOutputStream

openFileOutput(String name,int mode)

打开指定的私有文件输出流。

name:要打开的文件名,不能包含路径分隔符。

mode:操作模式。默认使用0或MODE_PRIVATE,其他模式包括:

l MODE_APPEND:追加

l MODE_WORLD_READABLE

l MODE_WORLD_WRITEABLE

如果调用此函数时,指定的文件不存在,则会自动创建一个空白的文件。

在默认情况下,写入的时候会覆盖原文件的内容。如果要把新写入的内容追加到原文件内容后面,可以指定其模式为Context.MODE_APPEND。

boolean

deleteFile(String name)

删除指定的文件

name:要删除的文件名,不能包含路径

String[]

fileList()

返回与调用这个函数相关的Context的应用程包相关的所有私有文件的文件名

以下为使用示例代码:

//读取文件

FileInputStream fis = openFileInput(“text1.txt”);

… …

fis.close(); //关闭输入流

//写入文件

FileOutputStream fos = openFileOutput(“text1.txt”,MODE_APPEND);

… …

fos.close(); //关闭输出流

如果在开发应用程序时,需要通过加载一个文件的内容来初始化程序,则可以在编译程序之前将这个文件即静态(static)文件放在res/raw/myDataFile目录下,然后在程序中通过Resources.openRawResource(R.raw.文件名)这个方法返回一个InputStream对象。使用示例代码如下:

Resources myResources = getResources();

InputStream myFile = myResources.openRawResource(R.raw.myFileName);

你可能感兴趣的:(android)