1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
package com.example.myapplication import android.os.Bundle import android.os.Environment import android.widget.Toast import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import com.example.myapplication.ui.theme.MyApplicationTheme import java.io.File import java.io.FileOutputStream import java.io.OutputStreamWriter import java.time.LocalDateTime class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { MyApplicationTheme { Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { SaveTextToFile("ejemplo.txt") } } } } @Composable fun SaveTextToFile(nombreArchivo: String) { val datetime = LocalDateTime.now().toString() Column( modifier = Modifier.fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { Button( onClick = { guardarTextoEnArchivo(datetime, nombreArchivo) } ) { Text("Agregar al archivo") } } } private fun guardarTextoEnArchivo(texto: String, nombreArchivo: String) { val estadoAlmacenamiento = Environment.getExternalStorageState() if (estadoAlmacenamiento == Environment.MEDIA_MOUNTED) { val directorio = getFilesDir() val archivo = File(directorio, nombreArchivo) try { val flujoSalida = FileOutputStream(archivo, true) val writer = OutputStreamWriter(flujoSalida) writer.append(texto) writer.close() Toast.makeText(this, "Texto añadido en $directorio $nombreArchivo", Toast.LENGTH_SHORT).show() } catch (e: Exception) { e.printStackTrace() Toast.makeText(this, "Error al guardar el archivo", Toast.LENGTH_SHORT).show() } } else { Toast.makeText(this, "No se pudo acceder al almacenamiento externo", Toast.LENGTH_SHORT).show() } } } |