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

Rupam Yadav 12 octobre 2023
  1. Utilisez ByteArrayInputStream() pour convertir une chaîne de caractères en InputStream en Java
  2. Utilisez StringReader et ReaderInputStream pour convertir une chaîne de caractères en InputStream en Java
  3. Utilisez org.apache.commons.io.IOUtils pour convertir une chaîne de caractères en un InputStream
Convertir une chaîne de caractères en InputStream en Java

Nous parlerons de la manière de convertir une chaîne de caractères en un InputStream en Java en utilisant plusieurs méthodes. Une chaîne de caractères est un ensemble de caractères, tandis qu’un InputStream est un ensemble d’octets. Voyons comment nous pouvons convertir une chaîne de caractères en InputStream en Java.

Utilisez ByteArrayInputStream() pour convertir une chaîne de caractères en InputStream en Java

Le paquet d’entrées/sorties de Java a la classe ByteArrayInputStream qui lit les tableaux d’octets comme InputStream. Tout d’abord, nous utilisons getBytes() pour récupérer les octets de exampleString avec le jeu de caractères UTF_8, et ensuite nous les passons à ByteArrayInputStream.

Pour vérifier si nous avons atteint notre objectif, nous pouvons lire le inputStream en utilisant read(), et convertir chaque byte en char. Cela nous renverra notre chaîne de caractères originale.

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public class Main {
  public static void main(String[] args) throws IOException {
    String exampleString = "This is a sample string";

    InputStream inputStream =
        new ByteArrayInputStream(exampleString.getBytes(StandardCharsets.UTF_8));

    // To check if we can read the string back from the inputstream
    int i;
    while ((i = inputStream.read()) != -1) {
      char getSingleChar = (char) i;
      System.out.print(getSingleChar);
    }
  }
}

Production :

This is a sample string

Utilisez StringReader et ReaderInputStream pour convertir une chaîne de caractères en InputStream en Java

La seconde technique pour convertir la chaîne en InputStream utilise deux méthodes, StringReader et ReadInputStream. La première est utilisée pour lire la chaîne et l’envelopper dans un reader tandis que la seconde prend deux arguments, un reader et les charsets. Enfin, on obtient le InputStream.

import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.input.ReaderInputStream;

public class Main {
  public static void main(String[] args) throws IOException {
    String exampleString = "This is a sample string";

    StringReader stringReader = new StringReader(exampleString);

    InputStream inputStream = new ReaderInputStream(stringReader, StandardCharsets.UTF_8);

    // To check if we can read the string back from the inputstream
    int i;
    while ((i = inputStream.read()) != -1) {
      char getSingleChar = (char) i;
      System.out.print(getSingleChar);
    }
  }
}

Production :

This is a sample string

Utilisez org.apache.commons.io.IOUtils pour convertir une chaîne de caractères en un InputStream

Nous pouvons également utiliser la bibliothèque Apache Commons pour nous faciliter la tâche. La classe IOUtls de cette bibliothèque Apache Commons a une méthode toInputStream() qui prend une chaîne de caractères et le charset à utiliser. Cette méthode est la plus simple de toutes car nous n’avons qu’à appeler une seule méthode pour convertir la chaîne Java en InputStream.

import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;

public class Main {
  public static void main(String[] args) throws IOException {
    String exampleString = "This is a sample string";

    InputStream is = IOUtils.toInputStream(exampleString, StandardCharsets.UTF_8);

    // To check if we can read the string back from the inputstream
    int i;
    while ((i = is.read()) != -1) {
      char getSingleChar = (char) i;
      System.out.print(getSingleChar);
    }
  }
}

Production :

This is a sample string
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java String