String in InputStream umwandeln in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden Sie ByteArrayInputStream(), um eine Zeichenkette in Java in einen InputStream zu konvertieren
  2. Verwenden Sie StringReader und ReaderInputStream, um einen String in einen InputStream in Java zu konvertieren
  3. Mit org.apache.commons.io.IOUtils einen String in einen InputStream umwandeln
String in InputStream umwandeln in Java

Wir werden darüber sprechen, wie man in Java einen String in einen InputStream konvertieren kann, indem man verschiedene Methoden verwendet. Ein String ist eine Menge von Zeichen, während ein InputStream eine Menge von Bytes ist. Sehen wir uns an, wie wir in Java einen String in einen InputStream konvertieren können.

Verwenden Sie ByteArrayInputStream(), um eine Zeichenkette in Java in einen InputStream zu konvertieren

Javas Input/Output-Paket hat die Klasse ByteArrayInputStream, die die Byte-Arrays als InputStream liest. Zuerst verwenden wir getBytes(), um die Bytes von exampleString mit dem Zeichensatz UTF_8 zu erhalten, und übergeben sie dann an ByteArrayInputStream.

Um zu überprüfen, ob wir unser Ziel erreicht haben, können wir den inputStream mit read() lesen und jedes byte in ein char konvertieren. Dies gibt unseren ursprünglichen String zurück.

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

public class Main {
  public static void main(String[] args) throws IOException {
    String exampleString = "This is a sample string";

    InputStream inputStream =
        new ByteArrayInputStream(exampleString.getBytes(StandardCharsets.UTF_8));

    // To check if we can read the string back from the inputstream
    int i;
    while ((i = inputStream.read()) != -1) {
      char getSingleChar = (char) i;
      System.out.print(getSingleChar);
    }
  }
}

Ausgabe:

This is a sample string

Verwenden Sie StringReader und ReaderInputStream, um einen String in einen InputStream in Java zu konvertieren

Die zweite Technik zur Umwandlung der Zeichenkette in einen InputStream verwendet zwei Methoden, StringReader und ReaderInputStream. Erstere wird verwendet, um die Zeichenkette zu lesen und in einen reader zu verpacken, während letztere zwei Argumente entgegennimmt, einen reader und die charsets. Als letztes erhalten wir den InputStream.

import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.input.ReaderInputStream;

public class Main {
  public static void main(String[] args) throws IOException {
    String exampleString = "This is a sample string";

    StringReader stringReader = new StringReader(exampleString);

    InputStream inputStream = new ReaderInputStream(stringReader, StandardCharsets.UTF_8);

    // To check if we can read the string back from the inputstream
    int i;
    while ((i = inputStream.read()) != -1) {
      char getSingleChar = (char) i;
      System.out.print(getSingleChar);
    }
  }
}

Ausgabe:

This is a sample string

Mit org.apache.commons.io.IOUtils einen String in einen InputStream umwandeln

Wir können auch die Apache-Commons-Bibliothek verwenden, um unsere Aufgabe zu erleichtern. Die Klasse IOUtls dieser Apache-Commons-Bibliothek hat eine Methode toInputStream(), die einen String und den zu verwendenden Zeichensatz entgegennimmt. Diese Methode ist die einfachste von allen, da wir nur eine einzige Methode aufrufen müssen, um den Java-String in InputStream zu konvertieren.

import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;

public class Main {
  public static void main(String[] args) throws IOException {
    String exampleString = "This is a sample string";

    InputStream is = IOUtils.toInputStream(exampleString, StandardCharsets.UTF_8);

    // To check if we can read the string back from the inputstream
    int i;
    while ((i = is.read()) != -1) {
      char getSingleChar = (char) i;
      System.out.print(getSingleChar);
    }
  }
}

Ausgabe:

This is a sample string
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java String

Verwandter Artikel - Java InputStream