II Tema1
Desarrollo Avanzado de Aplicaciones
para Dispositivos M´
oviles Android
http://ants.dif.um.es/˜felixgm/docencia/android
105
Tema 1
Ficheros y Bases de Datos
1.1.
Manejo de ficheros
En esta secci´
on veremos c´
omo manejar ficheros en Android, tanto en la memoria interna
del dispositivo, como en la memoria externa (tarjetas SD, MMC, etc) del mismo.
1.1.1.
Ficheros en la memoriainterna del dispositivo
Android permite gestionar ficheros directamente en la memoria interna del dispositivo.
Por defecto, los ficheros almacenados en la memoria interna son privados a la aplicaci´on que
los crea, lo que significa que ninguna otra aplicaci´on tiene acceso a ellos, y que al desinstalar
la aplicaci´on que los cre´
o, dichos ficheros se borran.
Las principales clases para elmanejo de ficheros en Android son FileInputStream 1
y FileOutputStream 2 . Para abrir un fichero en la memoria interna del dispositivo con la
intenci´on de volcar contenido en el mismo, haremos uso del m´etodo openFileOutput() de la
clase Activity (heredado en realidad de la clase abstracta Context).
Este m´etodo recibe como par´
ametros el nombre del fichero que queramos abrir, sin caracteresseparadores de ruta, as´ı como el modo concreto en el que queremos abrir o crear el
fichero.
La tabla 1.1 muestra los distintos modos que podemos usar en el m´etodo openFileOutput().
El siguiente c´
odigo muestra un ejemplo de uso de dicho m´etodo.
String fichero = "miFichero";
String contenido = "Cursos de Android";
try {
FileOutputStream fos1 = openFileOutput(fichero, Context.MODE_PRIVATE);fos1.write(contenido.getBytes());
fos1.close();
FileOutputStream fos2 = openFileOutput(fichero, Context.MODE_APPEND);
fos2.write(contenido.getBytes());
fos2.close();
} catch (FileNotFoundException e) {
...
} catch (IOException e) { ... }
1
2
http://developer.android.com/reference/java/io/FileInputStream.html
http://developer.android.com/reference/java/io/FileOutputStream.htmlhttp://ants.dif.um.es/˜felixgm/docencia/android
107
Parte II. Desarrollo Avanzado de Aplicaciones
para Dispositivos M´
oviles Android
Modo
MODE APPEND
MODE PRIVATE
MODE WORLD READABLE
MODE WORLD WRITEABLE
Descripci´
on
Si el fichero existe, a˜
nadir contenido al final del mismo. Si no existe, se crea
Modo por defecto donde el fichero s´olo
puede ser accedido por la aplicaci´on que
lo crea
Permite a las dem´as aplicacionestener acceso de lectura al fichero creado
Permite a las dem´as aplicaciones tener acceso de escritura al fichero creado
Tabla 1.1: Modos de creaci´
on de ficheros para el m´etodo openFileOutput()
Por su parte, para abrir un fichero de la memoria interna del dispositivo con la intenci´on de leer su contenido, haremos uso del m´etodo hom´ologo openFileInput() de la clase
Activity (tambi´en heredadode la clase abstracta Context). Este m´etodo solamente recibe
como par´ametro el nombre del fichero en cuesti´on que queramos abrir.
Otros m´etodos interesantes para el manejo de ficheros heredados de la clase Context son
los que se muestran en la tabla 1.2.
M´
etodo
getFilesDir()
getDir()
deleteFile()
fileList()
Descripci´
on
Obtiene la ruta absoluta del fichero en el
sistema de directorioscuando el fichero interno ha sido creado
Crea (o abre si ya existe) un directorio
dentro de la memoria interna
Borra un fichero guardado en la memoria
interna
Devuelve un array de ficheros que est´an
guardados en la carpeta de la aplicaci´on
Tabla 1.2: M´etodos de la clase Context para el manejo de ficheros
1.1.2.
Aplicaci´
on TestFicheros
Para probar la funcionalidad del manejo de ficheros enla memoria interna del dispositivo, vamos a crear una aplicaci´
on llamada TestFicheros. Dicha aplicaci´on contar´a con una
pantalla principal que contendr´
au
´nicamente un ListView.
Dicho ListView, a su vez, contendr´a tan solo dos elementos de texto: “Leer ficheros” y
“Escribir fichero”, de tal forma que al pulsarlos nos lleven a sendas pantallas de lectura y
escritura de ficheros.
La...
Regístrate para leer el documento completo.