75 votes

Comment écrire des fichiers dans un dossier d'actifs ou un dossier brut sous Android?

Je travaille sur une application dans laquelle je dois mettre à jour certains fichiers présents dans le dossier runtime assets / raw à partir d’un emplacement http.

Quelqu'un peut-il m'aider à partager ma façon d'écrire des fichiers dans des actifs ou des dossiers bruts?

146voto

Aaron Saunders Points 20454

ça ne peut pas être fait

16voto

jing Points 156

Pourquoi ne pas mettre à jour les fichiers sur le système de fichiers local? Vous pouvez lire / écrire des fichiers dans la zone en bac à sable de vos applications.

http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

Vous pouvez également envisager d'autres solutions, comme les préférences partagées et l'utilisation de fichiers de cache (toutes décrites dans le lien ci-dessus).

13voto

Suryavel TR Points 668

Vous ne pouvez pas écrire de données dans un dossier actif / brut , car il est compacté ( .apk ) et non extensible.

Si votre application a besoin de télécharger des fichiers de dépendance à partir du serveur, vous pouvez utiliser les fichiers d'extension APK fournis par android ( http://developer.android.com/guide/market/expansion-files.html ).

1voto

Vikrant Points 21

Une autre approche pour le même problème peut vous aider à lire et à écrire un fichier dans un contexte privé d'application

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X