Avatar ·

Cómo leer todo el contenido de un InputStream en una cadena en Kotlin

¡Hola a todos! Recientemente comencé a aprender Kotlin y me encontré con esta tarea: necesito leer datos de un InputStream (por ejemplo, de un archivo o respuesta de red) y convertirlos en una cadena String. El problema es que estoy acostumbrado a Java, donde para esto necesito escribir mucho código boilerplate con bucles, StringBuilder y buffers. En Kotlin parece que hay formas más concisas, pero no puedo encontrar un ejemplo claro. Esto es lo que probé: ```kotlin fun readFromStream(stream: InputStream): String { val bytes = stream.readBytes() return String(bytes) } ``` Pero esto causa confusión con la codificación, y no estoy seguro de que sea correcto para flujos grandes. También escuché sobre `.bufferedReader()` y `.readText()`, pero no entiendo cómo aplicarlos correctamente. Necesito una solución que: 1. Funcione para cualquier InputStream (archivo, socket, ByteArrayInputStream). 2. Tenga en cuenta la codificación (UTF-8 por defecto). 3. No requiera gestión manual de buffers o bucles. 4. Preferiblemente con la mínima cantidad