Avatar ·

Comment lire un InputStream et le convertir en chaîne en Java ?

Bonjour à tous ! Je suis débutant en Java et j'ai rencontré un problème : j'ai un objet `InputStream` que j'obtiens, par exemple, lors de la lecture d'un fichier ou d'une requête réseau. Je dois convertir le contenu de ce flux en une chaîne `String` pour pouvoir traiter le texte. Le problème est que je ne sais pas comment le faire correctement. J'ai essayé de lire les octets manuellement, mais le code devient lourd et probablement incorrect. Voici ce que j'ai essayé : ```java InputStream inputStream = new FileInputStream("file.txt"); StringBuilder sb = new StringBuilder(); int data = inputStream.read(); while (data != -1) { sb.append((char) data); data = inputStream.read(); } inputStream.close(); String result = sb.toString(); ``` Ce code fonctionne, mais je suis sûr qu'il existe des solutions plus élégantes. Premièrement, il ne prend pas en compte l'encodage des caractères. Deuxièmement, sur les gros fichiers, il sera lent car il lit octet par octet. Troisièmement, j'ai entendu dire que de nouvelles méthodes sont apparues en Java 9 et versions ultérieures, mais je ne sais pas...