String Java para InputStream

String Java para InputStream

1. Visão geral

Neste tutorial rápido, veremos comoconvert a standard String to an InputStream usando Java simples, Guava e a biblioteca Apache Commons IO.

Este artigo faz parte dethe “Java – Back to Basic” series aqui no exemplo.

2. Converter com Java Simples

Vamos começar com um exemplo simples usando Java para fazer a conversão - usando uma matrizbyte intermediária:

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

Observe que o métodogetBytes() codifica esteString usando o conjunto de caracteres padrão da plataforma, para evitar um comportamento indesejável, você pode usargetBytes(Charset charset)econtrol the encoding process.

3. Converter com goiaba

Guava não fornece um método de conversão direta, mas nos permite obter umReader da String - ponto em que, obterInputStream é fácil:

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

4. Converter com Commons IO

Por fim, a biblioteca Apache Commons IO fornece uma excelente solução direta:

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

Finalmente - observe que estamos deixando o fluxo de entrada aberto nesses exemplos - não se esqueça declose it when you’re done.

É isso - três maneiras simples e concisas de obter umInputStream de uma string simples.