Converti un InputStream in una stringa in Java
-
Utilizza l’API
Stream
per convertire unInputStream
in una stringa -
Usa
ByteArrayOutputStream
per leggere o convertire un InputStream in una stringa -
Usa
IOUtils.toString
di Apache Commons per leggere o convertire un InputStream in una stringa
In questo tutorial, parleremo di come convertire un InputStream in una stringa in Java. Un InputStream è un flusso di byte che può essere ulteriormente utilizzato per eseguire diverse attività come la lettura. In generale, è una classe che contiene tutto in byte. Se vogliamo convertire questo flusso di byte in qualsiasi altro tipo di dati, potremmo dover utilizzare metodi specifici.
Qui esamineremo i diversi modi in cui possiamo leggere o convertire un InputStream
in una stringa in Java
Utilizza l’API Stream
per convertire un InputStream
in una stringa
Possiamo convertire un InputStream
in una stringa usando l’API Stream
che fa parte di Java 8. InputStreamReader
legge inputStream e BufferedReader().lines()
ci aiuta a convertire questo InputStream
in un flusso di String
. Come possiamo vedere, Collectors.joining()
viene utilizzato per unire tutte le stringhe nel flusso e quindi restituire una singola stringa.
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();
}
}
}
Produzione:
This is a sample text file
Usa ByteArrayOutputStream
per leggere o convertire un InputStream in una stringa
Sappiamo che un InputStream
è composto da byte, e quindi possiamo la classe ByteArrayOutputStream
che converte readInputStream
in un array di byte. Dopodiché, possiamo convertire questo array di byte in una stringa usando 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();
}
}
}
Produzione:
This is a sample text file
Usa IOUtils.toString
di Apache Commons per leggere o convertire un InputStream in una stringa
Per semplificare il nostro compito, possiamo usare la funzione IOUtils.toString
inclusa nella libreria Apache Commons. Per utilizzare la libreria Apache Commons, possiamo includere questa dipendenza nel nostro progetto.
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
Nell’esempio seguente, prima creiamo un InputStream
che è un file di testo, quindi chiamiamo il metodo IOUtils.toString()
che accetta un InputStream
e la codifica da usare per convertire il flusso. Stiamo usando la codifica UTF-8, che è universalmente utilizzata.
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();
}
}
}
Produzione:
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.
LinkedInArticolo correlato - Java String
- Converti array di byte in stringa esadecimale in Java
- Converti stringa Java in byte
- Eseguire la conversione di array da stringa a stringa in Java
- Rimuovi sottostringa dalla stringa in Java
- Confronta le stringhe in Java
- Genera stringa casuale in Java