Salvare e leggere file nella memoria interna

Una app può salvare e leggere file nella memoria interna come file privati a cui solo quella app può accedere ad eccezione di altre app con diritti di root.
Il percorso assoluto di questa cartella è data\data\[your app package]\files
La classe Context fornisce alcuni metodi che facilitano alcune operazioni come:

  • openFileInput(String name) Apre un file privato associato con questo Context’s application package per la lettura
  • openFileOutput(String name, int mode) Apre un file privato associato con questo Context’s application package per la scrittura
  • getFilesDir() Ottiene il percorso assoluto alla cartella dove i tuoi file interni sono salvati
  • getDir() crea una (o apre una esistente) cartella nella memoria interna
  • deleteFile() Elimina un file salvato nella memoria interna
  • fileList() Restituisce una matrice di file salvati dalla tua applicazione

e non servono speciali permessi per utilizzare questi metodi.

Per esempio il seguente codice tratto da Using the Internal Storage crea un file contenente la stringa “hello world!”

dove alla linea 5, al posto di MODE_PRIVATE si può usare MODE_APPEND, altre costanti come MODE_WORLD_READABLE e MODE_WORLD_WRITEABLE sono deprecati.

Il seguente codice legge lo stesso file e mostra un messaggio con il testo “hello world!”

Ma questi esempi hanno un limite: essi non possono essere usati in sotto cartelle, cioè non è possibile creare una struttura ad albero di directory e file.
Se necessiti di creare file internamente a una directory devi usare le tecniche standard di java, per esempio il codice seguente crea un file interno alla cartella “sub”

e il seguente codice legge lo stesso file

3 risposte a “Salvare e leggere file nella memoria interna”

  1. I don’t understand why I keep getting the same message: “error: cannot find symbol method getApplicationContext()” no matter what examples I choose. What do I need to eliminate it? Thank you for your answer!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.