How do I get the content of an InputStream as a String?

We can use the code below to convert the content of an InputStream into a String. At first we use FileInputStream create to a connection to a file that going to be read. IOUtils.toString(InputStream input, String encoding) method gets the content of the InputStream and returns a string representation of it. In the end we need to close the InputStream in a finally block.

package org.kodejava.example.commons.io;

import org.apache.commons.io.IOUtils;

import java.io.InputStream;
import java.io.FileInputStream;
import java.io.File;

public class InputStreamToString {
    public static void main(String[] args) throws Exception {
        //
        // Create an input stream for reading data.txt file content.
        //
        InputStream is = new FileInputStream(new File("data.txt"));

        //
        // Get the content of an input stream as a string using UTF-8
        // as the character encoding.
        //
        try {
            String contents = IOUtils.toString(is, "UTF-8");
            System.out.println(contents);
        } finally {
            IOUtils.closeQuietly(is);
        }
    }
}

Wayan Saryada

Programmer, runner, recreational diver, currently living in the island of Bali, Indonesia. Mostly programming in Java, creating web based application with Spring Framework, Hibernate / JPA.

Leave a Reply