使用OutputStreamWriter将字符串附加到现有文件

时间:2014-04-27 06:17:45

标签: android

我无法使用OutputStreamWriter将字符串附加到现有文件。

它重写文件,旧数据不再存在:

try {
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("filename", Context.MODE_PRIVATE));
    outputStreamWriter.append(message);
    outputStreamWriter.close();
}

"filename"是已存在的文件。 message是要追加的字符串。

1 个答案:

答案 0 :(得分:3)

打开文件时使用MODE_APPEND而不是MODE_PRIVATE。 您的问题已经多次得到解答,例如:Android append text file

<强>更新

打开文件时不同模式标志的目的(来源:JavaDocs):

  1. MODE_PRIVATE : 文件创建模式:默认模式,其中创建的文件只能由调用应用程序(或共享相同用户ID的所有应用程序)访问。
  2. MODE_APPEND * :文件创建模式:用于openFileOutput,如果文件已存在,则将数据写入现有文件的末尾,而不是删除它。
  3. MODE_ENABLE_WRITE_AHEAD_LOGGING :数据库打开标志:设置后,默认情况下打开数据库并启用预写日志记录。
  4. MODE_MULTIPROCESS :SharedPreference loading flag:设置后,即使已在此进程中加载​​了共享首选项实例,也会检查磁盘上的文件是否有修改。在应用程序具有多个进程的情况下,有时需要此行为,所有进程都写入相同的SharedPreferences文件。但是,通常在进程之间存在更好的通信形式。这是Gingerbread(Android 2.3)之前和之前的遗留(但未记录)行为,并且在针对此类版本时隐含了此标志。对于针对大于Android 2.3的SDK版本的应用程序,必须根据需要显式设置此标志。
  5. MODE_WORLD_READABLE :已弃用
  6. MODE_WORLD_WRITEABLE :已弃用