2. GESTIRE I FILE
Android permette di gestire i file sia su file system locale che su SD card e sono file generalmente
accessible dalla app che li ha creati
I casi d’uso sono in genere:
R/W di informazioni su file system locale
R/W su SD card
Lettura file statico da APK
3. JAVA NIO
Dalla versione 1.4 di java esiste oltre allo stream è stata aggiunta la possibilità di lavorare con
gi buffer.
Tramite NIO è possibile leggere e scrivere dati da e verso fonti dati in modo piu efficiente.
Android puo usare le nuove API NIO tramite il package java.nio
4. FILE SYSTEM LOCALE
Android permette di gestire i file tramite le librerie standard di Java.
All’interno di un’activity si possono ottenere riferimenti ai file da gestire tramite:
Public abstract FileInputStream openFileInput(String name)
Public abstract FileOutputStream openFileOutput(String name,int mode)
Bisogna specificare nel caso della scrittura il modo. Le possibilità gestite dal context dell’app sono:
MODE_PRIVATE ACCESSIBILE SOLO DALL’APP CHE L’HA CREATA
MODE_WORLD_READABLE ACCESSIBILE AD ALTRE APP IN LETTURA
MODE_WORLD_WRITABLE ACCESSIBILE AD ALTRE APP IN SCRITTURA
MODE_APPEND PERMETTE DI APPENDERE LE INFO INVECE DI SUSTITUIRE IL CONTENUTO
5. LETTURA DA FILE
Esempio di codice
FileInputStream fis = new FileInputStream(new File(FILE_PATH));
DataInputStream dis = new DataInputStream(fis);
String txt = dis.readUTF();
dis.close();
Quando android crea un file lo crea nella path costruita in questo modo:
/data/data/<package_App>/files/<nome_file>
6. ESEMPIO PER LA SCRITTURA DI UN FILE
FileOutputStream fos = openFileOutput(FILE_PATH,mode);
DataOutputStream dos = new DataOutpputStream(fos);
dos.writeUTF(«testo_da_scrivere»);
dos.close();
ESERCIZIO
1. Creare una activity che prenda in ingresso dati input dall’utente e salvi tutto sul file
2. Creare una activity che dia la possibilità di gestire il contenuto del file.
7. GESTIRE SD CARD
L’SD oramai è presente in quasi tutti idispositivi e possiede una discreta dimensione (Alcune sono
anche di 32 Mb)
I File si trovano sotto la directory /sdcard
Leggere un file da SD non è tanto differente da leggere i file nel modo gia visto
Per poter leggere o scriver su SD basta usare il codice seguente sostitutivo agli esempi precedenti.
File sdcardDir = Environment.getExternalStorageDirectory();
File file = new File(sdcardDir,FILE_PATH);
ATTENZIONE: dato che stiam oscrivendo al difuori della nostra app abbiamo necessità dei permessi
ovvero android.permission. WRITE_EXTERNAL_STORAGE attraverso il tag <user-permissions>
8. C’È LA SD CARD?
import android.os.Environment;
String state = Environment.getExternalStorageState(); // Indica se presente l’’sd
Environment.MEDIA_MOUNTED
Environment.MEDIA_MOUNTED_READ_ONLY
ESERCIZIO: Creare una classe Wrapper per la gestione dell’SD Card
9. LEGGERE DA APK
Con android è possibile leggere contenuti dall’interno della nostra APK
Per usufruiire della possibilità di avere file all’interno dell’APK e usarli per leggere dobbiamo
seguire semplici pasi ovvero:
1. Inserire i file nella cartlla /res/raw
2. Usare il metodo public InputStream openRawResource(int id) che si trova nella classe Resources che si
ottiene da getResources() dell’activity
3. A questo punto possiamo leggere ed elaborare il contenuto