保存和加载文件

   

Shared Preference和数据库来存储应用程序的数据是个很好的习惯。但也存在有时候你需要直接用文件来储存,而不想依赖于Android的托管机制。

 

和标准的Java I/O类与方法一样,Android提供了openFileInputopenFileOutput来简化从本地文件读取或写入流,如下面的代码片段所示:

 

String FILE_NAME = “tempfile.tmp”;

 

// Create a new output file stream that’s private to this application.

FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);

 

// Create a new file input stream.

FileInputStream fis = openFileInput(FILE_NAME);

 

这些方法只支持在当前应用程序文件夹内的文件;指定路径分隔符会引发一个异常。

 

如果在创建FileOutputStream时指定的文件不存在的话,Android会为你创建一个。对待已经存在的文件的默认行为是覆盖它们;为了能追加一个已经存在的文件,通过指定Context.MODE_APPEND模式。

 

默认情况下,通过openFileOutput方法创建的文件只能在调用的应用程序里可见——不同的应用程序尝试访问这些文件时会被拒绝访问。在应用程序间共享文件的标准方法是应用一个Content Provider。可变通的地方,你可以在创建输出文件时指定Context.MODE_WORLD_READABLEContext.MODE_WORLD_WRITEABLE模式来让它们在其它的应用程序中可见,如下面的片段所示:

 

String OUTPUT_FILE = “publicCopy.txt”;

FileOutputStream fos = openFileOutput(OUTPUT_FILE, Context.MODE_WORLD_WRITEABLE);

posted on 2009-08-06 15:40  xirihanlin  阅读(609)  评论(0编辑  收藏  举报