Java: Como converter um InputStream em String


Para converter um InputStream, que pode ser qualquer fonte de informação, em um String nós podemos fazer uso do método estático IOUtils.toString(inputStream) da biblioteca Apache Commons IO.

Um InputStream pode ser vários tipos de fonte de inforamação, um arquivo, a rede, uma requisição Http, um array de bytes (como o exemplo abaixo), etc.

Veja no exemplo abaixo como converter um InputStream em uma String de forma simples utilizando a biblioteca Apache Commons IO.

package br.com.dicasdejava.util;

import org.apache.commons.io.IOUtils;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;

public class InputStreamToString {
    public static void main(String[] args) throws IOException {
        InputStream inputStream = new ByteArrayInputStream("Gustavo Furtado de Oliveira Alves".getBytes());
        String textoConvertido = IOUtils.toString(inputStream);
        System.out.println(textoConvertido);
    }
}

Saída:

Gustavo Furtado de Oliveira Alves

No exemplo acima, podemos ver que utilizando a classe IOUtils da Apache Commons IO conseguimos facilmente converter um InputStream em um objeto String através do método toString.

Maven

Se você utiliza Maven em seu projeto, pode adicionar a dependência abaixo no seu pom.xml para utilizar todo o poder da biblioteca Apache Commons IO.

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.3.2</version>
</dependency>

Referências:

  1. JavaDoc: IOUtils
  2. Código-fonte de Exemplo