Saltar al contenido

Cómo leer y escribir archivos txt en android en kotlin

Si hallas algún fallo con tu código o proyecto, recuerda probar siempre en un ambiente de testing antes subir el código al proyecto final.

Solución:

Debe usar un directorio de almacenamiento interno o externo para su archivo.

Interno:

val path = context.getFilesDir()

Externo:

val path = context.getExternalFilesDir(null)

Si desea utilizar almacenamiento externo, deberá agregar un permiso al manifiesto:


Crea tu directorio:

val letDirectory = File(path, "LET")
letDirectory.mkdirs()

Luego crea tu archivo:

val file = File(letDirectory, "Records.txt")

Entonces puedes escribirle:

FileOutputStream(file).use 
    it.write("record goes here".getBytes())

o solo

file.appendText("record goes here")

Y leer:

val inputAsString = FileInputStream(file).bufferedReader().use  it.readText() 

Kotlin ha simplificado bastante la lectura/escritura de archivos.

Para leer/escribir a interno almacenamiento:

context.openFileOutput(filename, Context.MODE_PRIVATE).use 
    it.write(message.toByteArray())

.
.
.
val file = File(context.filesDir, "myfile.txt")
val contents = file.readText() // Read file

Para leer/escribir a externo almacenamiento:

val file = File(Environment.getExternalStorageDirectory()+"/path/to/myfile.txt")
file.writeText("This will be written to the file!")
.
.
.
val contents = file.readText() // Read file

Solo quiero agregar a la respuesta de TpoM6oH. Cuando trabaje con Archivos, es posible que no tenga garantizado el 100 % de éxito en las operaciones de archivo que pretende. Por lo tanto, es una mejor práctica tratar de detectar excepciones como filenotfoundexception, etc. y tener el debido cuidado con el flujo de control del programa.

Para crear un archivo en el almacenamiento externo en Android, puede obtener la ubicación usando

Environment.getExternalStorageDirectory()

y verifique si la ubicación existe. Si no es así, cree uno y continúe creando y escribiendo su archivo usando Kotlin.

val sd_main = File(Environment.getExternalStorageDirectory()+"/yourlocation")
var success = true
if (!sd_main.exists())
    success = sd_main.mkdir()

if (success) 
    val sd = File("filename.txt")

    if (!sd.exists())
        success = sd.mkdir()

    if (success) 
        // directory exists or already created
        val dest = File(sd, file_name)
        try 
            // response is the data written to file
            PrintWriter(dest).use  out -> out.println(response) 
         catch (e: Exception) 
            // handle the exception
        
    
 else 
    // directory creation is not successful

Espero que esto ayude.

Si te gustó nuestro trabajo, tienes el poder dejar una noticia acerca de qué te ha parecido este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *