Запись в файл с использованием getFilesDir(), приводящая к ошибке "Файловая система только для чтения" (Android)

Я хочу записать во внутренний каталог файлов моего приложения, но получаю следующую ошибку:

java.io.FileNotFoundException: com.android.internal.os.AndroidPrintStream@47a0990 (Read-only file system)

Таким образом, он говорит, что это "только для чтения" хранилище. я использую getFilesDir() чтобы найти путь, и я видел много примеров онлайн людей, использующих это для записи во внутреннее хранилище. Почему я вижу эту ошибку?

Мой код ниже:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();

// Root element
Element rootElement = doc.createElement("license");
doc.appendChild(rootElement);

// Write content to XML file.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(context.getFilesDir().getPath() + "/license.xml"));
System.out.println("Saving to: " + context.getFilesDir().getPath());
transformer.transform(source, result);

Исключение выдается в последней строке моего кода.

У меня есть следующие разрешения в моем манифесте:

<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Обратите внимание, я не хочу писать на внешнее хранилище, так как этот файл не должен быть виден пользователям.

Я могу написать в тот же каталог, используя FileOutputStream без каких-либо исключений... так почему же Transformer столкнулись с этой проблемой только для чтения?

1 ответ

getFilesDir() является /data/data/com.example.apk/files

Вам не нужно использовать эти разрешения.

Это говорит filenotfound, Попробуйте сначала создать его.

Тем не менее, это странно

Другие вопросы по тегам