私は自分のアプリケーションの内部ファイルディレクトリに書き込みたいが、私は次のようなエラーになっています:だから書き込みがgetFilesDir()を使用してファイルに「読み取り専用ファイルシステムを」エラー(アンドロイド)を与える
java.io.FileNotFoundException: [email protected] (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
にこの読み取り専用の問題が発生しますか?
あなたのファイルはデバイスメモリまたはSDカードですか? – sasikumar
デバイスメモリの/ data/user/0/[my app]/filesにあるはずです – petehallw
@petehallwどのデバイスを使用していますか? – Vyacheslav