Java String in InputStream

1. Panoramica

In questo breve tutorial, vedremo come convertire una stringa standard in un InputStream utilizzando Java, Guava e la libreria IO di Apache Commons.

Questo articolo fa parte della serie "Java - Back to Basic" qui su Baeldung.

2. Converti con Plain Java

Cominciamo con un semplice esempio che utilizza Java per eseguire la conversione, utilizzando un array di byte intermedio :

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

Notare che il metodo getBytes () codifica questa stringa utilizzando il set di caratteri predefinito della piattaforma, quindi per evitare comportamenti indesiderati è possibile utilizzare getBytes (Charset charset) e controllare il processo di codifica .

3. Converti con Guava

Guava non fornisce un metodo di conversione diretto, ma ci consente di ottenere un Reader fuori dalla stringa - a quel punto, ottenere InputStream è facile:

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

4. Converti con Commons IO

Infine, la libreria Apache Commons IO fornisce un'eccellente soluzione diretta:

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

Infine, tieni presente che in questi esempi stiamo lasciando aperto il flusso di input: non dimenticare di chiuderlo quando hai finito .

Ecco fatto: tre modi semplici e concisi per ottenere un InputStream da una semplice stringa.