Androiditis

Blog sobre Google Android en Castellano

Almacenamiento de archivos

Posted by Pablo July - 29 - 2009 - Wednesday ADD COMMENTS

Almacenamiento de archivos en Android

Según la guía oficial de desarrolladores Android, todos los datos de la aplicación (archivos incluidos) son privados de la aplicación. Realizando la compartición de información con otras aplicaciones mediante Content Providers. Son componentes opcionales que dan acceso a la lectura y escritura de datos de una aplicación. Android trae por defecto proveedores de contenido básicos para imágenes, video, audio, archivos y información personal de contacto.

Independientemente si queremos compartir información con otras aplicaciones, la forma de almacenar archivos (que no información, para lo que podemos usar el sistema de almacenamiento datos clave-valor o el API de sqlite) es mediente el uso de métodos del paquete android.content.*, especialmente de la clase Context.

Context.openInputFile()

public FileInputStream openFileInput (String name)
Abre un archivo privado en el paquete Context de la aplicación.

Parámetros:
name El nombre del archivo a abrir para su lectura; no puedo contener separadores.
Devuelve
FileInputStream input stream resultante
Lanza
FileNotFoundException

Análogamente,

Context.openOutputFile() abre un archivo para escritura.

En ambos casos especifican claramente que no es posible incluir un path en su ubicación, ya que esta siempre será el contexto de la aplicación en curso. Y por tanto no podemos usar directamente el framework de desarrollo de alto nivel si lo que queremos es estructurar de alguna manera el contenido que vamos guardando, y por ello tengamos que implementarlo con las librería de bajo nivel incluidas en Android 1.5. O bien, usar el path como nombre del archivo almacena, pero esta solución me parece menos limpia.

Usando la librería de bajo nivel convencional java.io.* necesitamos apuntar a la ruta de ubicación de archivos propia de la aplicación que estamos corriendo, pues es la única en la que tendremos permisos de lectura/escritura. Esta es/data/data/NOMBRE_DEL_PAQUETE/files/

A partir de ahí ya se puede crear subdirectorios y archivos con los correspondientes métodos del paquete.

subdirectories

Popularity: 17% [?]