Comment lire tout le contenu d'un InputStream en une chaîne en Kotlin ?
Bonjour à tous ! J'ai récemment commencé à apprendre Kotlin et j'ai rencontré un problème : je dois lire des données depuis un InputStream (par exemple, depuis un fichier ou une réponse réseau) et les convertir en une chaîne String. Le problème est que je suis habitué à Java, où il faut écrire beaucoup de code boilerplate avec des boucles, StringBuilder et des buffers. En Kotlin, il semble y avoir des moyens plus concis, mais je n'arrive pas à trouver un exemple clair.
Voici ce que j'ai essayé :
```kotlin
fun readFromStream(stream: InputStream): String {
val bytes = stream.readBytes()
return String(bytes)
}
```
Mais cela pose des problèmes d'encodage, et je ne suis pas sûr que ce soit correct pour les grands flux. J'ai aussi entendu parler de `.bufferedReader()` et `.readText()`, mais je ne comprends pas comment les appliquer correctement.
J'ai besoin d'une solution qui :
1. Fonctionne pour n'importe quel InputStream (fichier, socket, ByteArrayInputStream).
2. Tienne compte de l'encodage (UTF-8 par défaut).
3. Ne nécessite pas de gestion manuelle des buffers ou des boucles.
4. De préférence avec un minimum de code.