Avatar ·

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.