Konvertieren eines InputStreams in eine Zeichenkette in Java
-
Konvertieren eines
InputStream
in eine Zeichenkette mithilfe derStream
-API -
Verwenden von
ByteArrayOutputStream
zum Lesen oder Konvertieren eines InputStreams in eine Zeichenkette -
Verwendung von
IOUtils.toString
von Apache Commons zum Lesen oder Konvertieren eines InputStreams in einen String
In diesem Tutorial werden wir darüber sprechen, wie man einen InputStream in Java in einen String konvertieren kann. Ein InputStream ist ein Strom von Bytes, der weiter verwendet werden kann, um verschiedene Aufgaben wie das Lesen durchzuführen. Im Allgemeinen ist es eine Klasse, die alles in Bytes enthält. Wenn wir diesen Strom von Bytes in einen anderen Datentyp umwandeln wollen, müssen wir möglicherweise spezielle Methoden verwenden.
Hier werden wir die verschiedenen Möglichkeiten durchgehen, mit denen wir einen InputStream
in Java lesen oder in einen String konvertieren können
Konvertieren eines InputStream
in eine Zeichenkette mithilfe der Stream
-API
Wir können einen InputStream
in einen String konvertieren, indem wir die Stream
-API verwenden, die Teil von Java 8 ist. Der InputStreamReader
liest den InputStream und BufferedReader().lines()
hilft uns, diesen InputStream
in einen String
-Stream zu konvertieren. Wie wir sehen können, wird Collectors.joining()
verwendet, um alle Strings im Stream zu verbinden und dann einen einzelnen String zurückzugeben.
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();
}
}
}
Ausgabe:
This is a sample text file
Verwenden von ByteArrayOutputStream
zum Lesen oder Konvertieren eines InputStreams in eine Zeichenkette
Wir wissen, dass ein InputStream
aus Bytes besteht, und daher können wir die Klasse ByteArrayOutputStream
verwenden, die den readInputStream
in ein Array von Bytes konvertiert. Danach können wir dieses Array von Bytes mit toString()
in einen String konvertieren.
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();
}
}
}
Ausgabe:
This is a sample text file
Verwendung von IOUtils.toString
von Apache Commons zum Lesen oder Konvertieren eines InputStreams in einen String
Um unsere Aufgabe zu vereinfachen, können wir die Funktion IOUtils.toString
aus der Apache-Commons-Bibliothek verwenden. Um die Apache-Commons-Bibliothek zu verwenden, können wir diese Abhängigkeit in unser Projekt einbinden.
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
Im folgenden Beispiel erstellen wir zunächst einen InputStream
, der eine Textdatei ist, und rufen dann die Methode IOUtils.toString()
auf, die einen InputStream
und die zu verwendende Kodierung für die Konvertierung des Streams entgegennimmt. Wir verwenden die UTF-8-Kodierung, die universell verwendet wird.
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();
}
}
}
Ausgabe:
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.
LinkedInVerwandter Artikel - Java String
- So führen Sie die Konvertierung von String in String-Array in Java durch
- Wie entferne ich eine Unterzeichenkette aus einer Zeichenkette in Java
- So konvertieren Sie Byte-Array in Hex-String in Java
- Wie man Java-String in Byte konvertiert
- Generieren Sie eine zufällige Zeichenkette in Java
- Die Swap-Methode in Java