como guardar archivos de texto en la tarjeta SD

Buenas hoy vamos hacer un ejercicio sencillo de como crear archivos de texto y guardarlo en la memoria externa de celular.
Al final quedara como una especie de agenda que nos servirá para guardar cualquier cosas que deseemos en un archivo de texto y luego la podremos leer.

Debemos agregar la siguiente linea a nuestro AndroidManifest.xml
<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE” />

La estructura de nuestro activity_main.xml es la siguiente:

Y lo que contendrá nuestro MainActivity.java sera lo siguiente

MainActivity

public class MainActivity extends AppCompatActivity {

    private EditText et1;
    private EditText et2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et1=(EditText)findViewById(R.id.txtNombrar);
        et2=(EditText)findViewById(R.id.txtEscribir);
    }
    public void grabar(View v) {
        String nomarchivo = et1.getText().toString();
        String contenido = et2.getText().toString();
        try {
            File tarjeta = Environment.getExternalStorageDirectory();
            Toast.makeText(this,tarjeta.getAbsolutePath(),Toast.LENGTH_LONG).show();
            File file = new File(tarjeta.getAbsolutePath(), nomarchivo);
            OutputStreamWriter osw = new OutputStreamWriter(
                    new FileOutputStream(file));
            osw.write(contenido);
            osw.flush();
            osw.close();
            Toast.makeText(this, "Los datos fueron grabados correctamente",
                    Toast.LENGTH_SHORT).show();
            et1.setText("");
            et2.setText("");
        } catch (IOException ioe) {
            Toast.makeText(this, "No se pudo grabar",
                    Toast.LENGTH_SHORT).show();
        }
    }

    public void recuperar(View v) {
        String nomarchivo = et1.getText().toString();
        File tarjeta = Environment.getExternalStorageDirectory();
        File file = new File(tarjeta.getAbsolutePath(), nomarchivo);
        try {
            FileInputStream fIn = new FileInputStream(file);
            InputStreamReader archivo = new InputStreamReader(fIn);
            BufferedReader br = new BufferedReader(archivo);
            String linea = br.readLine();
            String todo = "";
            while (linea != null) {
                todo = todo + linea + " ";
                linea = br.readLine();
            }
            br.close();
            archivo.close();
            et2.setText(todo);

        } catch (IOException e) {
            Toast.makeText(this, "No se pudo leer",
                    Toast.LENGTH_SHORT).show();
        }
    }

}

Bueno ahora les dejo el enlace para que pueda descargar el ejercicio.

 

3 comentarios en «como guardar archivos de texto en la tarjeta SD»

  1. SoCu

    Hola, gracias por este tutorial, como dice Leonado si vas a crear un video para comentarlo, te pediría de paso si se puede ampliar, o crear uno nuevo de este estilo, me refiero a que en lugar de poner el nombre del archivo para recuperar, podrías hacerlo que muestre el contenido de una carpeta para poder seleccionar el archivo y cargarlo, pensando en lo útil que puede resultar este tutorial que has creado, puede llegar el día en que esa carpeta tenga muchos archivos y no nos acordemos del nombre que se dio, y como me has comentado en la otra página que se puede crear una carpeta en el raíz de la tarjeta SD para dejar los archivos, se podria crear una carpeta “Documentos” y dentro de esta una subcarpeta “Notas” para dejar aquí esos archivos con las notas que se creen, porque te digo en un SubCarpeta, porque puede que en otra parte de la aplicación podamos otra opción para crear notas, y estas nuevas notas se guarden en otra SubCarpeta diferente “Notas 2”, ¿esto se podría hacer?

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat