Android数据存储(二)——使用文件和目录

        文件的操作,都由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的值更改为你所需要的路径。

   

       

        以下是具体例子:

        AndroidStudy_File

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章