Java String to InputStream

1. Overview

In this quick tutorial, we’re going to look at how to convert a standard String to an InputStream using plain Java, Guava, and the Apache Commons IO library.

This article is part of the “Java – Back to Basic” series here on VietMX’s Blog.

2. Convert With Plain Java

Let’s start with a simple example using Java to do the conversion – using an intermediary byte array:

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

Note that the getBytes() method encodes this String using the platform’s default charset so to avoid undesirable behavior you can use getBytes(Charset charset) and control the encoding process.

3. Convert With Guava

Guava doesn’t provide a direct conversion method but does allow us to get a CharSource out of the String and easily convert it to a ByteSource. Then, obtaining the InputStream is easy:

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

Note, however, that the asByteSource method is marked as @Beta. This means it can be removed in the future Guava release. We need to keep this in mind.

4. Convert With Commons IO

Finally, the Apache Commons IO library provides an excellent direct solution:

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

Finally – do note that we’re leaving the input stream open in these examples – don’t forget to close it when you’re done.

5. Conclusion

In this article, we presented three simple and concise ways to get an InputStream out of a simple String.

As always, the full source code is available over on GitHub.

Related posts:

Biến trong java
Giới thiệu Json Web Token (JWT)
Java Program to Implement Quick sort
“Stream has already been operated upon or closed” Exception in Java
Java Program to Perform Inorder Recursive Traversal of a Given Binary Tree
A Guide to Apache Commons Collections CollectionUtils
Converting Strings to Enums in Java
Java Program to Find the Minimum value of Binary Search Tree
Java Program to Implement Repeated Squaring Algorithm
Login For a Spring Web App – Error Handling and Localization
Python Program to Check If a String Is a Number (Float)
Java Program to Check Multiplicability of Two Matrices
Deploy a Spring Boot App to Azure
Java Program to implement Priority Queue
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
Java Program to Solve any Linear Equation in One Variable
Spring Boot - Application Properties
Java Web Services – JAX-WS – SOAP
Entity To DTO Conversion for a Spring REST API
Introduction to Spring Cloud CLI
Compare Two JSON Objects with Jackson
Java Program to Search for an Element in a Binary Search Tree
Java Program to Implement Lloyd’s Algorithm
Guide to the Volatile Keyword in Java
Spring Security OAuth Login with WebFlux
Returning Image/Media Data with Spring MVC
Java Program to Represent Graph Using Incidence Matrix
Hướng dẫn Java Design Pattern – Iterator
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Java Program to Implement EnumMap API
Quick Guide to Spring Controllers