Converter String em InputStream em Java

  1. Utilize ByteArrayInputStream() para converter uma string para InputStream em Java
  2. Utilize StringReader e ReaderInputStream para converter uma string para um InputStream em Java
  3. Utilize org.apache.commons.io.IOUtils para converter uma string para um InputStream

Falaremos sobre como converter uma string para um InputStream em Java utilizando vários métodos. Uma string é um array de caracteres, enquanto que um InputStream é um array de bytes. Vamos ver como podemos converter uma string para InputStream em Java.

Utilize ByteArrayInputStream() para converter uma string para InputStream em Java

O pacote E/S de Java tem a classe ByteArrayInputStream que lê as matrizes de bytes como InputStream. Primeiro, utilizamos getBytes() para obter os bytes de exampleString com o charset UTF_8, e depois passamos para ByteArrayInputStream.

Para verificar se temos sucesso no nosso objectivo, podemos ler o inputStream utilizando read(), e converter cada byte a um char. Isto devolverá a nossa string original.

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) throws IOException {
        String exampleString = "This is a sample string";

        InputStream inputStream = new ByteArrayInputStream(exampleString.getBytes(StandardCharsets.UTF_8));

      //To check if we can read the string back from the inputstream
        int i;
        while ((i = inputStream.read()) != -1){
            char getSingleChar = (char)i;
            System.out.print(getSingleChar);
        }

    }
}

Resultado:

This is a sample string

Utilize StringReader e ReaderInputStream para converter uma string para um InputStream em Java

A segunda técnica para converter a string para InputStream utiliza dois métodos, StringReader e ReaderInputStream. O primeiro é utilizado para ler a string e embrulhá-la num reader, enquanto que o segundo leva dois argumentos, um reader e os charsets. Finalmente, obtemos o InputStream.

import org.apache.commons.io.input.ReaderInputStream;

import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;

public class Main {

    public static void main(String[] args) throws IOException {

        String exampleString = "This is a sample string";

        StringReader stringReader = new StringReader(exampleString);

        InputStream inputStream = new ReaderInputStream(stringReader, StandardCharsets.UTF_8);

        //To check if we can read the string back from the inputstream
        int i;
        while ((i = inputStream.read()) != -1){
            char getSingleChar = (char)i;
            System.out.print(getSingleChar);
        }
    }
}

Resultado:

This is a sample string

Utilize org.apache.commons.io.IOUtils para converter uma string para um InputStream

Podemos também utilizar a biblioteca Apache Commons para facilitar a nossa tarefa. A classe IOUtls desta biblioteca Apache Commons tem um método toInputStream() que leva um string e o charset a utilizar. Este método é o mais fácil de todos, pois só temos de chamar um único método para converter a string Java para InputStream.

import org.apache.commons.io.IOUtils;

import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public class Main {

    public static void main(String[] args) throws IOException {

        String exampleString = "This is a sample string";

        InputStream is = IOUtils.toInputStream(exampleString, StandardCharsets.UTF_8);

        //To check if we can read the string back from the inputstream
        int i;
        while ((i = is.read()) != -1){
            char getSingleChar = (char)i;
            System.out.print(getSingleChar);
        }
      
    }
}

Resultado:

This is a sample string

Artigo relacionado - Java String

  • Como verificar se uma string está vazia ou nula em Java
  • Artigo relacionado - Java InputStream

  • Verificar se uma variável é uma string em JavaScript
  • Como verificar se uma string contém uma string em Java