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.