Converti un InputStream in una stringa in Java
-
Utilizza l’API
Streamper convertire unInputStreamin una stringa -
Usa
ByteArrayOutputStreamper leggere o convertire un InputStream in una stringa -
Usa
IOUtils.toStringdi 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
