文件的操作,都由Context(上下文)对象来衍生
方法 | 说明 |
Context.openFileInput() | 打开应用程序文件读取。这些文件位于/files子目录中 |
Context.openFileOutput() | 创建或打开应用程序以供写入 |
Context.deleteFile() | 通过名称删除文件 |
Context.fileList() | 获取所有/files子目录下的文件列表 |
Context.getFilesDir() | 获取应用程序/files子目录对象 |
Context.getCacheDir() | 获取应用程序/cache子目录对象 |
Context.getDir() | 根据名称创建或 |
表9.2.1 文件Context的重要方法
文件的读取操作:
FileInputStreamfileIntputStream = openFileInput(fileNameStr);
代码片段9.2.1 文件读取操作
注释:取得文件字符流后,就可以根据不同的文件进行不同的处理。fileNameStr为文件的文件名。注意读取文件并不需要指定文件操作权限。
文件的写入操作:
FileOutputStreamfileOutputStream = openFileOutput(fileNameStr, MODE_PRIVATE);
fileOutputStream.write(str.getBytes("utf-8"));
代码片段9.2.2 文件写入操作
注释:对于文件的写入操作,则需要指定文件操作权限,不同的操作,会产生不同的效果,这个在前面的9.1节已经描述过。
如果,想要对文件进行复杂操作,那么上面的两种方法就无法满足需求,这个时候要建立复杂文件管理需求,就必须要设置自己的目录结构。
而要实现这个,就需要使用标准的文件方法java.io.File。
具体实例如下:
File fileDir = getFilesDir();
Log.i("fileDir", fileDir.getAbsolutePath());
String strNewFileName = "myFile.dat";
String strFileContents = "some data for our file";
File newFile = new File(fileDir, strNewFileName);
newFile.createNewFile();
FileOutputStream fo = new
FileOutputStream(newFile.getAbsolutePath());
fo.write(strFileContents.getBytes());
fo.close();
代码片段9.2.3 普通文件创建
注释:可以根据自己的需要指定文件夹的位置,上述所写的getFilesDir方法获取的是默认的路径,即data/data/<package name>/files目录。如果需要更改,可以在创建File的时候,将fileDir的值更改为你所需要的路径。
以下是具体例子: