Ich arbeite an einer Anwendung, in der ich einige Dateien, die in der Laufzeit von Assets / Raw-Ordnern vorhanden sind, von einem http-Speicherort aus aktualisieren muss.
Kann mir jemand helfen, indem er teilt, wie Dateien in Assets oder Raw-Ordnern geschrieben werden?
Antworten:
Es kann nicht gemacht werden. Es ist unmöglich.
quelle
Warum nicht stattdessen die Dateien im lokalen Dateisystem aktualisieren? Sie können Dateien in den Sandbox-Bereich Ihrer Anwendung lesen / schreiben.
http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
Andere Alternativen, die Sie möglicherweise prüfen möchten, sind gemeinsame Perferences und die Verwendung von Cache-Dateien (alle unter dem obigen Link beschrieben).
quelle
Sie können keine Daten in den Asset- / Raw- Ordner schreiben , da diese gepackt ( .apk ) und nicht erweiterbar sind.
Wenn Ihre Anwendung Abhängigkeitsdateien vom Server herunterladen muss, können Sie APK-Erweiterungsdateien von Android ( http://developer.android.com/guide/market/expansion-files.html ) verwenden.
quelle
Ein anderer Ansatz für dasselbe Problem kann Ihnen beim Lesen und Schreiben von Dateien im privaten Anwendungskontext helfen
String NOTE = "note.txt"; private void writeToFile() { try { OutputStreamWriter out = new OutputStreamWriter(openFileOutput( NOTES, 0)); out.write("testing"); out.close(); } catch (Throwable t) { Toast.makeText(this, "Exception: " + t.toString(), 2000).show(); } } private void ReadFromFile() { try { InputStream in = openFileInput(NOTES); if (in != null) { InputStreamReader tmp = new InputStreamReader(in); BufferedReader reader = new BufferedReader(tmp); String str; StringBuffer buf = new StringBuffer(); while ((str = reader.readLine()) != null) { buf.append(str + "\n"); } in.close(); String temp = "Not Working"; temp = buf.toString(); Toast.makeText(this, temp, Toast.LENGTH_SHORT).show(); } } catch (java.io.FileNotFoundException e) { // that's OK, we probably haven't created it yet } catch (Throwable t) { Toast.makeText(this, "Exception: " + t.toString(), 2000).show(); } }
quelle
Sie können keine JSON-Datei schreiben, während Sie sich in Assets befinden. Wie bereits beschrieben, sind Assets schreibgeschützt. Sie können jedoch Assets (JSON-Datei / alles andere in Assets) in den lokalen Speicher des Mobiltelefons kopieren und dann aus dem lokalen Speicher bearbeiten (schreiben / lesen). Weitere Speicheroptionen wie Shared Preference (für kleine Daten) und SQLite-Datenbank (für große Datenmengen) sind verfügbar.
quelle