Konvertieren eines InputStreams in eine Zeichenkette in Java

  1. Konvertieren eines InputStream in eine Zeichenkette mithilfe der Stream-API
  2. Verwenden von ByteArrayOutputStream zum Lesen oder Konvertieren eines InputStreams in eine Zeichenkette
  3. Verwenden Sie 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 org.apache.commons.io.IOUtils;
import java.io.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

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

Verwenden Sie 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 org.apache.commons.io.IOUtils;
import java.io.*;

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

Verwandter Artikel - Java String

  • Wie konvertiert man eine Ganzzahl in eine Zeichenkette in Java
  • Wie man in Java die Interpunktion von Zeichenketten entfernt
  • Verwandter Artikel - Java Inputstream

  • Wie überprüft man, ob eine Zeichenkette in Java eine ganze Zahl ist
  • String in InputStream umwandeln in Java