How does one create an InputStream from a String?

Amir Rachum picture Amir Rachum · Apr 19, 2011 · Viewed 121.7k times · Source

I'm not used to working with streams in Java - how do I create an InputStream from a String?

Answer

anubhava picture anubhava · Apr 19, 2011

Here you go:

InputStream is = new ByteArrayInputStream( myString.getBytes() );

Update For multi-byte support use (thanks to Aaron Waibel's comment):

InputStream is = new ByteArrayInputStream(Charset.forName("UTF-16").encode(myString).array());

Please see ByteArrayInputStream manual.

It is safe to use a charset argument in String#getBytes(charset) method above.

After JDK 7+ you can use

java.nio.charset.StandardCharsets.UTF_16

instead of hardcoded encoding string:

InputStream is = new ByteArrayInputStream(StandardCharsets.UTF_16.encode(myString).array());