Wie schreibe ich Dateien in Assets-Ordner oder Raw-Ordner in Android?


73

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?


4
Assets / Raw-Ordner sind auf dem Telefon nicht vorhanden. Sie sind in das Paket kompiliert
Falmarri

Antworten:


143

Es kann nicht gemacht werden. Es ist unmöglich.


5
Eigentlich habe ich es mit einem Ansichtsfehler gemacht (eine Webansicht zeigte meinen Java-Quellcode und dann enthielt die aus Assets geladene HTML-Datei meinen Java-Quellcode ohne Leerzeichen oder irgendetwas). Ich suche gerade nach Möglichkeiten, es neu zu erstellen.
CQM



1

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();
    }
}

0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.