Cadena de Java a InputStream

1. Información general

En este tutorial rápido, veremos cómo convertir un String estándar en un InputStream usando Java simple, Guava y la biblioteca IO de Apache Commons.

Este artículo es parte de la serie "Java - Back to Basic" aquí en Baeldung.

2. Convertir con Java simple

Comencemos con un ejemplo simple usando Java para hacer la conversión, usando una matriz de bytes intermedia :

@Test public void givenUsingPlainJava_whenConvertingStringToInputStream_thenCorrect() throws IOException { String initialString = "text"; InputStream targetStream = new ByteArrayInputStream(initialString.getBytes()); }

Tenga en cuenta que el método getBytes () codifica esta cadena utilizando el juego de caracteres predeterminado de la plataforma, por lo que para evitar un comportamiento indeseable, puede usar getBytes (juego de caracteres) y controlar el proceso de codificación .

3. Convertir con guayaba

Guava no proporciona un método de conversión directo, pero nos permite sacar un Reader de String, en cuyo punto, obtener InputStream es fácil:

@Test public void givenUsingGuava_whenConvertingStringToInputStream_thenCorrect() throws IOException { String initialString = "text"; InputStream targetStream = new ReaderInputStream(CharSource.wrap(initialString).openStream()); }

4. Convierta con Commons IO

Finalmente, la biblioteca IO de Apache Commons proporciona una excelente solución directa:

@Test public void givenUsingCommonsIO_whenConvertingStringToInputStream_thenCorrect() throws IOException { String initialString = "text"; InputStream targetStream = IOUtils.toInputStream(initialString); }

Finalmente, tenga en cuenta que dejamos el flujo de entrada abierto en estos ejemplos; no olvide cerrarlo cuando haya terminado .

Eso es todo: tres formas simples y concisas de obtener un InputStream de una cadena simple.