Converter String em InputStream em Java
-
Utilize
ByteArrayInputStream()para converter uma string paraInputStreamem Java -
Utilize
StringReadereReaderInputStreampara converter uma string para umInputStreamem Java -
Utilize
org.apache.commons.io.IOUtilspara 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