web-dev-qa-db-fra.com

Comment convertir une chaîne en InputStream en Java?

Étant donné une chaîne:

String exampleString = "example";

Comment puis-je le convertir en un InputStream?

815
Iain

Comme ça:

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

Notez que cela suppose que vous souhaitiez un InputStream qui est un flux d'octets qui représente votre chaîne d'origine codée comme TF-8.

Pour les versions de Java inférieures à 7, remplacez StandardCharsets.UTF_8 par "UTF-8".

1355
Iain

Je trouve que l'utilisation de Apache Commons IO me rend la vie beaucoup plus facile.

String source = "This is the source of my input stream";
InputStream in = org.Apache.commons.io.IOUtils.toInputStream(source, "UTF-8");

Vous constaterez peut-être que la bibliothèque propose également de nombreux autres raccourcis vers les tâches courantes que vous pourrez peut-être utiliser dans votre projet.

259
Elijah

Vous pouvez utiliser un StringReader et convertir le lecteur en un flux d'entrée en utilisant la solution dans cet autre message de stackoverflow .

36
A_M