Lo storage interno – Lezione 25 di Android

Come leggere e scrivere informazioni nei file in Android utilizzando i metodi read() e write()

In Android è possibile memorizzare informazioni all’interno del dispositivo attraverso dei file privati che, di default, non possono essere letti al di fuori dell’applicazione. Per creare e scrivere un file nella memoria interna di Android dovremo:

  1. Chiamare il metodo openFileOutput() passandogli il nome del file su cui vogliamo operare e ricevere come risultato un oggetto di tipo FileOutputStream;
  2. Scrivere nel file utilizzandon il metodo write();
  3. Chiudere il file con close().

Ecco un esempio su come scrivere un file in Android:

  public static final String FILENAME = "my_file_name";
  String siteName = "Datrevo";

  FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
  fos.write(siteName.getBytes());
  fos.close();

Al metodo openFileOutput() viene passato il parametro MODE_PRIVATE, quest’elemento consente di creare un file (che sarà sovrascritto se già presente) di tipo privato e accessibile solo dalla nostra applicazione. I possibili modi per aprire un file sono:

  • MODE_APPEND
  • MODE_WORLD_READABLE
  • MODE_WORLD_WRITEABLE

I flag MODE_WORLD_READABLE e MODE_WORLD_WRITEABLE sono stati deprecati dall’API level 17. Per condividere file privati adesso bisogna utilizzare il FileProvider con FLAG_GRANT_READ_URI_PERMISSION altrimenti verrà lanciata un’eccezione di tipo SecurityException.

Per leggere da un file in Android dovremo:

  1. Invocare il metodo openFileInput() passandogli il nome del file da leggere in modo da ricevere un oggetto di tipo FileInputStream;
  2. Leggere i dati dal file con il metodo read();
  3. Chiudere il file con close().

Ecco un esempio di come leggere le informazioni salvate in un file in Android:

  FileInputStream fileInputStream = openFileInput("filename.txt");
  InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
  BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
  StringBuilder stringBuilder = new StringBuilder();
  String line;
  while ((line = bufferedReader.readLine()) != null) {
    stringBuilder .append(line);
  }

Tutte le informazioni salvate all’interno dello storage di Android saranno cancellate se l’applicazione verrà disinstallata.

Indice Lezione PrecedenteLezione Successiva

Lascia un commento

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