Comandos para Guardar y Leer Archivos en Android

Clase 23 de 32Curso de Patrones de Diseño en Android

Resumen

¿Cómo implementar el patrón Comando para guardar y leer archivos en Android?

En este ejercicio, exploramos cómo implementar un patrón Comando en Android para guardar y leer archivos eficientemente. Este enfoque ayuda a encapsular peticiones en objetos y abre la puerta a funcionalidades como el deshacer y rehacer de acciones. Aquí aprenderás cómo desarrollar comandos para crear un sistema que interactúe eficazmente con el sistema de archivos de un dispositivo Android.

¿Cómo crear un comando para guardar archivos?

Al crear un comando para guardar archivos, comenzamos implementando una interfaz que proporciona el marco para desarrollar acciones concretas. El proceso implica varios pasos, como se detalla a continuación:

  1. Implementación de la interfaz: Comienza creando una clase SaveCommand que implementa la interfaz Command.
  2. Definición del método de ejecución: Implementa el método execute necesario. Aquí escribimos el contenido en un archivo de la siguiente manera:
OutputStringWriter outputStringWriter = new OutputStringWriter(fileName, context);
// Suponemos que 'args' es variable con los argumentos que se desea escribir
outputStringWriter.write(args.toString());
  1. Manejo de excepciones: Utiliza un bloque try-catch para manejar las posibles IOException que podrían surgir cuando el sistema de archivos no es accesible.
try {
    outputStringWriter.close();
} catch (IOException e) {
    // Manejo de la excepción
    System.out.println("Error al guardar el archivo: " + e.getMessage());
}

¿Cómo desarrollar un comando para leer archivos?

El comando para leer archivos es un complemento vital para el comando de guardar. Siguiendo un enfoque similar, procedemos con:

  1. Implementación de la interfaz: Crea la clase ReadCommand implementando la interfaz Command.
  2. Definición del método de ejecución: Aquí se lee el contenido de un archivo y se almacena en una cadena para mostrarse posteriormente.
StringBuilder fileContent = new StringBuilder();
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(context.openFileInput(fileName)))) {
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        fileContent.append(line).append("\n");
    }
} catch (IOException e) {
    // Manejo de la excepción
    System.out.println("Error al leer el archivo: " + e.getMessage());
}

¿Cómo integrar los comandos en una aplicación Android?

Para integrar los comandos, sigue estos pasos:

  1. Crear un CommandManager: Permite agregar o solicitar comandos dados un nombre.
CommandManager commandManager = new CommandManager();
commandManager.putCommand("save", new SaveCommand());
// Agrega otros comandos siguiendo el mismo patrón
  1. Invocar comandos: Utiliza el CommandManager para ejecutar los comandos creados.
// Para guardar un archivo
commandManager.getCommand("save").execute(context, "exampleFile.txt", "Hola Mundo", "Platzi es genial");

// Para leer un archivo
commandManager.getCommand("read").execute(context, "exampleFile.txt");

Con estos pasos, has configurado un patrón Comando que enriquece las aplicaciones Android al manejar eficazmente operaciones de E/S de archivos. El diseño modular permite expandir, reutilizar y mantener el código más fácilmente. ¡Continúa perfeccionando tus habilidades y explora lo que puedes lograr con patrones de diseño en Android!