Você está na página 1de 15

Manejo de Archivos

Camilo Ramrez A. 2013-1

AGENDA
Organizacin de archivos en Android Almacenamiento Interno vs Externo Dnde instalar la app? Permisos requeridos Crear un archivo en almacenamiento interno Crear un archivo en almacenamiento externo

Organizacin del almacenamiento


El almacenamiento en android se divide en Interno y Externo, esto se debe a la posibilidad de que un telfono tenga la capacidad de expandir su almacenamiento mediante una tarjeta externa (SD, MMC, etc.). Todos los telefonos tienen ambos tipos de almacenamiento independiente de si tienen o no bahas de expansin, en este ultimo caso el almacenamiento externo es una particin de la memoria total

Almacenamiento Interno vs Externo


Interno
Esta siempre disponible

Externo

No siempre est disponible pues el usuario puede montar esta aplicacin como USB o removerla del sistema. Los archivos solo son accesibles por su Estn pblicamente disponibles por lo que aplicacin pueden ser accedidas por cualquiera. Cuando el usuario desinstala la aplicacin el Cuando el usuario desinstala la aplicacin el sistema remueve todos los archivos desde el sistema remueve los archivos que estn almacenamiento interno ubicados en el directorio obtenido por getExternalFilesDir(). Por lo general es ms pequeo Por lo general es de mayor tamao Tpicamente se usa para asegurarse de que El almacenamiento externo es el mejor ni los usuarios ni los dems programas lugar para aquellos archivos que no tienen restricciones de acceso o para permitir el tengan acceso a sus archivos acceso directo a otras aplicaciones o al mismo usuario.

Almacenamiento preferido al instalar


Se define en el Manifiesto Por defecto se instala en el almacenamiento Interno Para especificar Externo
android:installLocation="preferExternal

Dejar elegir al sistema


android:installLocation=auto

Permisos requeridos
Se define en el Manifiesto, slo para acceder al almacenamiento externo Permiso para leer en el Almacenamiento Externo
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Permiso para escribir en el Almacenamiento Externo


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Crear archivo almacenamiento Interno


File file = new File(Directorio, Nombre de Archivo); Directorios base
context.getFilesDir(): Directorio de almacenamiento interno context.getCacheDir(): Directorio de almacenamiento temporal.

Crear archivo almacenamiento Externo


Primero verificar si el medio est montado
public boolean isExternalStorageWritable() { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { return true; } return false; }

Escoger el directorio:
Privado: getExternalFilesDir() Pblico:getExternalStoragePublicDirectory()

Escribir en un archivo
1. 2. 3. 4. Definir el medio de almacenamiento Seleccionar el directorio o crearlo Abrir el archivo o crearlo Escribir datos en el archivo y cerrarlo

Escribir en un archivo
Crear un directorio para guardar el archivo
File dir = new File(directorioBase, nombre");

Verificar si existe el directorio sino crearlo


if(dir.mkdir()||dir.isDirectory())

Abrir el archivo o crearlo


File f = new File(dir, "prueba.txt");

Escribir en un archivo
Escribir en el archivo
String texto=Hola Mundo\n\r; FileOutputStream fos = new FileOutputStream(f,true);//Append = true for (int i = 0; i < 10; i++) { fos.write(texto.getBytes()); } fos.flush(); fos.close();

Verificar en el DDMS la creacin del archivo

Leer un archivo
Verificar si existe
f.exists();

Leer el archivo lnea a lnea


String line; StringBuilder sb = new StringBuilder(); InputStream inputStream = new FileInputStream(f); InputStreamReader isr = new InputStreamReader(inputStream); BufferedReader br = new BufferedReader(isr); while((line= br.readLine())!=null){ sb.append(line); sb.append('\n'); } br.close(); sb.toString();

Borrar un archivo
Referenciar el archivo Verificar si existe Borrarlo
f.delete();

Ejercicio
Crear un programa en android que permita al usuario introducir los datos de un usuario: nombre, contrasea, email. Y que al dar click en un botn permita guardar estos datos en un archivo en el almacenamiento interno. Incluir otro botn que permita leer los datos almacenados en el archivo y los muestre de forma tal que: cada dato este en una lnea y que deje un espacio de una lnea por cada usuario que muestre.

Ejercicio 2
Modificar la interfaz anterior de forma tal que al dar click en guardar, el programa lea los usuarios almacenados en el archivo y los muestre en una lista personalizada (con una etiqueta y su respectivo valor para cada dato).