Converter um InputStream em uma string em Java
-
Utilize a API
Stream
para converter umInputStream
para uma String -
Utilize
ByteArrayOutputStream
para ler ou converter um InputStream em String -
Utilize
IOUtils.toString
do Apache Commons para Ler ou Converter um InputStream para uma String
Neste tutorial, falaremos sobre como converter um InputStream para uma String em Java. Um InputStream é um fluxo de bytes que pode ser utilizado para realizar várias tarefas como a leitura. Em geral, é uma classe que contém tudo em bytes. Se quisermos converter este fluxo de bytes para qualquer outro tipo de dados, poderemos ter de utilizar métodos específicos.
Aqui vamos percorrer as várias maneiras pelas quais podemos ler ou converter um InputStream
numa string em Java
Utilize a API Stream
para converter um InputStream
para uma String
Podemos converter um InputStream
a uma string utilizando a API Stream
que faz parte do Java 8. O InputStreamReader
lê o inputStream e o BufferedReader().lines()
ajuda-nos a converter este InputStream
num fluxo de String
. Como podemos ver, Collectors.joining()
está a ser utilizado para juntar todas as strings no fluxo e depois retornar uma única string.
package com.company;
import java.io.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.io.IOUtils;
public class Main {
public static void main(String[] args) {
try {
InputStream inputStream = new FileInputStream("java/sampleFile.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
Stream<String> streamOfString = new BufferedReader(inputStreamReader).lines();
String streamToString = streamOfString.collect(Collectors.joining());
System.out.println(streamToString);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Resultado:
This is a sample text file
Utilize ByteArrayOutputStream
para ler ou converter um InputStream em String
Sabemos que um InputStream
é composto por bytes, e assim podemos ByteArrayOutputStream
classe que converte o readInputStream
num array de bytes. Depois disso, podemos converter este array de bytes numa String utilizando toString()
.
package com.company;
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
InputStream readInputStream = new FileInputStream("java/sampleFile.txt");
String encoding = "UTF-8";
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] byteSize = new byte[1024];
int length;
while ((length = readInputStream.read(byteSize)) != -1) {
byteArrayOutputStream.write(byteSize, 0, length);
}
System.out.println(byteArrayOutputStream.toString(encoding));
} catch (IOException e) {
e.printStackTrace();
}
}
}
Resultado:
This is a sample text file
Utilize IOUtils.toString
do Apache Commons para Ler ou Converter um InputStream para uma String
Para facilitar a nossa tarefa, podemos utilizar a função IOUtils.toString
incluída na biblioteca Apache Commons. Para utilizar a Biblioteca Apache Commons, podemos incluir esta dependência no nosso projecto.
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
No exemplo abaixo, primeiro, criamos um InputStream
que é um ficheiro de texto, e depois chamamos o método IOUtils.toString()
que toma um InputStream
e a codificação a utilizar para converter o fluxo. Estamos a utilizar a codificação UTF-8, que é universalmente utilizada.
package com.company;
import java.io.*;
import org.apache.commons.io.IOUtils;
public class Main {
public static void main(String[] args) {
try {
InputStream inputStream = new FileInputStream("java/sampleFile.txt");
String steamToString = IOUtils.toString(inputStream, "UTF-8");
System.out.println(steamToString);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Resultado:
This is a sample text file
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtigo relacionado - Java String
- Como converter a string Java em Byte
- Como converter Byte Array em Hex String em Java
- Como realizar a conversão de string em array de string em Java
- Como remover string de string em Java
- Comparar Strings em Java
- Gerar String Aleatória em Java