2014-04-27 1 views
-1

Я не могу добавить строку в существующий файл, используя OutputStreamWriter. неДобавление строки в существующий файл с помощью OutputStreamWriter

Он переписывает файл и старые данные больше не существует:

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

"filename" это файл, который уже существует. message - это строка для добавления.

ответ

3

Используйте MODE_APPEND вместо MODE_PRIVATE при открытии файла. Ваш вопрос был дан ответ уже несколько раз, как здесь: Android append text file

Update

Целью различных флагов режима при открытии файла (источник: JavaDocs):

  1. MODE_PRIVATE : Режим создания файла: режим по умолчанию, в котором доступ к созданному файлу может быть доступен только вызывающему приложению (или всем приложениям, использующим один и тот же идентификатор пользователя).
  2. MODE_APPEND *: Режим создания файла: для использования с openFileOutput, если файл уже существует, то записывайте данные в конец существующего файла, а не удаляя его.
  3. MODE_ENABLE_WRITE_AHEAD_LOGGING: флаг открытия базы данных: когда установлен, база данных открывается с включенным по умолчанию протоколом записи на запись.
  4. MODE_MULTIPROCESS: Флаг загрузки SharedPreference: при установке файл на диске будет проверен на модификацию, даже если экземпляр общих настроек уже загружен в этот процесс. Такое поведение иногда желательно в тех случаях, когда приложение имеет несколько процессов, все они записываются в один файл SharedPreferences. Однако, как правило, существуют лучшие формы общения между процессами. Это было наследие (но недокументированное) поведение в и перед Gingerbread (Android 2.3), и этот флаг подразумевается при настройке таких выпусков. Для приложений, предназначенных для версий SDK, больших, чем Android 2.3, этот флаг должен быть явно установлен, если это необходимо.
  5. MODE_WORLD_READABLE: Устаревшие
  6. MODE_WORLD_WRITEABLE: Устаревшие
+0

работал! объясните, почему этот MODE_PRIVATE запретил добавление писателя? – sourabh

+0

@sourabh см. Обновление, основанное на javadocs 'Context'. – rekaszeru

Смежные вопросы