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