我无法使用OutputStreamWriter
将字符串附加到现有文件。
它重写文件,旧数据不再存在:
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("filename", Context.MODE_PRIVATE));
outputStreamWriter.append(message);
outputStreamWriter.close();
}
"filename"
是已存在的文件。 message
是要追加的字符串。
答案 0 :(得分:3)
打开文件时使用MODE_APPEND而不是MODE_PRIVATE。 您的问题已经多次得到解答,例如:Android append text file
<强>更新强>
打开文件时不同模式标志的目的(来源:JavaDocs
):
MODE_PRIVATE
强>:
文件创建模式:默认模式,其中创建的文件只能由调用应用程序(或共享相同用户ID的所有应用程序)访问。MODE_APPEND
* :文件创建模式:用于openFileOutput,如果文件已存在,则将数据写入现有文件的末尾,而不是删除它。MODE_ENABLE_WRITE_AHEAD_LOGGING
:数据库打开标志:设置后,默认情况下打开数据库并启用预写日志记录。MODE_MULTIPROCESS
:SharedPreference loading flag:设置后,即使已在此进程中加载了共享首选项实例,也会检查磁盘上的文件是否有修改。在应用程序具有多个进程的情况下,有时需要此行为,所有进程都写入相同的SharedPreferences文件。但是,通常在进程之间存在更好的通信形式。这是Gingerbread(Android 2.3)之前和之前的遗留(但未记录)行为,并且在针对此类版本时隐含了此标志。对于针对大于Android 2.3的SDK版本的应用程序,必须根据需要显式设置此标志。MODE_WORLD_READABLE
:已弃用MODE_WORLD_WRITEABLE
:已弃用