Пара вещей.
Когда вы используете FileOutputStream, вы должны убедиться, что каталог, в который вы пытаетесь записать, создан, прежде чем пытаться записать в него файл.Если нет, вы должны создать его.Это можно сделать с помощью метода mkdirs()
класса File
.
Далее Я не уверен, что требуется вызов getAbsolutePath
из-за типа файловой системы, которую использует Android.Раньше мне никогда не приходилось использовать его для сохранения на SD.
Я бы попробовал это и посмотрел, решит ли кто-нибудь из них это для вас.