Converter String em InputStream em Java
-
Utilize
ByteArrayInputStream()
para converter uma string paraInputStream
em Java -
Utilize
StringReader
eReaderInputStream
para converter uma string para umInputStream
em Java -
Utilize
org.apache.commons.io.IOUtils
para converter uma string para umInputStream
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 arrays 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 java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.input.ReaderInputStream;
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 java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
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
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn