Convertir un InputStream en une chaîne de caractères en Java

  1. Utiliser l’API Stream pour convertir un InputStream en chaîne de caractères
  2. Utilisez ByteArrayOutputStream pour lire ou convertir un InputStream en chaîne de caractères
  3. Utilisez IOUtils.toString d’Apache Commons pour lire ou convertir un InputStream en une chaîne de caractères

Dans ce tutoriel, nous parlerons de la manière de convertir un InputStream en une chaîne de caractères en Java. Un InputStream est un flux d’octets qui peut être utilisé pour effectuer plusieurs tâches comme la lecture. En général, c’est une classe qui contient tout en octets. Si nous voulons convertir ce flux d’octets en tout autre type de données, il se peut que nous devions utiliser des méthodes spécifiques.

Ici, nous allons passer en revue les différentes façons dont nous pouvons lire ou convertir un InputStream en une chaîne de caractères en Java

Utiliser l’API Stream pour convertir un InputStream en chaîne de caractères

Nous pouvons convertir un InputStream en une chaîne de caractères en utilisant l’API Stream qui fait partie de Java 8. InputStreamReader lit l’inputStream et BufferedReader().lines nous aide à convertir cet InputStream en une chaîne de caractères. Comme nous pouvons le voir, Collectors.joining() est utilisé pour joindre toutes les chaînes du flux et ensuite retourner une seule chaîne.

package com.company;

import org.apache.commons.io.IOUtils;
import java.io.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {

        try {
            InputStream inputStream = new FileInputStream("java/sampleFile.txt");

            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            Stream<String> streamOfString= new BufferedReader(inputStreamReader).lines();
            String streamToString = streamOfString.collect(Collectors.joining());

            System.out.println(streamToString);

        } catch (IOException e) {

            e.printStackTrace();
        }

    }
}

Production :

This is a sample text file

Utilisez ByteArrayOutputStream pour lire ou convertir un InputStream en chaîne de caractères

Nous savons qu’un InputStream est constitué d’octets, et nous pouvons donc utiliser la classe ByteArrayOutputStream qui convertit le readInputStream en un tableau d’octets. Après cela, nous pouvons convertir ce tableau d’octets en une chaîne de caractères en utilisant toString().

package com.company;

import java.io.*;

public class Main {

    public static void main(String[] args) {

        try {
            InputStream readInputStream = new FileInputStream("java/sampleFile.txt");

            String encoding = "UTF-8";

            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            byte[] byteSize = new byte[1024];

            int length;
            while ((length = readInputStream.read(byteSize)) != -1) {
                byteArrayOutputStream.write(byteSize, 0, length);
            }
          
            System.out.println(byteArrayOutputStream.toString(encoding));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

Output :

This is a sample text file

Utilisez IOUtils.toString d’Apache Commons pour lire ou convertir un InputStream en une chaîne de caractères

Pour nous faciliter la tâche, nous pouvons utiliser la fonction IOUtils.toString incluse dans la bibliothèque Apache Commons. Pour utiliser la bibliothèque Apache Commons, nous pouvons inclure cette dépendance dans notre projet.

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.8.0</version>
</dependency>

Dans l’exemple ci-dessous, nous créons d’abord un InputStream qui est un fichier texte, puis nous appelons la méthode IOUtils.toString() qui prend un InputStream et l’encodage à utiliser pour convertir le flux. Nous utilisons l’encodage UTF-8, qui est universellement utilisé.

package com.company;

import org.apache.commons.io.IOUtils;
import java.io.*;

public class Main {
    public static void main(String[] args) {

        try {
            InputStream inputStream = new FileInputStream("java/sampleFile.txt");
          
            String steamToString = IOUtils.toString(inputStream, "UTF-8");
            System.out.println(steamToString);

        } catch (IOException e) {
            e.printStackTrace();
        }
      
    }
}

Production :

This is a sample text file

Article connexe - Java String

  • Comment convertir une liste de tableaux en une chaîne de caractères en Java
  • Comment effectuer une conversion de chaîne en chaîne en Java
  • Article connexe - Java Inputstream

  • Convertir une chaîne de caractères en objet JSON en Java
  • Comment convertir un tableau d'octets en chaîne hexadécimale en Java