How to Convert String to InputStream in Java
-
Use
ByteArrayInputStream()to Convert a String toInputStreamin Java -
Use
StringReaderandReaderInputStreamto Convert a String to anInputStreamin Java -
Use
org.apache.commons.io.IOUtilsto Convert a String to anInputStream
We will talk about how to convert a string to an InputStream in Java using several methods. A string is a set of characters, while an InputStream is a set of bytes. Let’s see how we can convert string to InputStream in Java.
Use ByteArrayInputStream() to Convert a String to InputStream in Java
Java’s Input/Output package has the class ByteArrayInputStream that reads the byte arrays as InputStream. First, we use getBytes() to get the bytes from exampleString with the charset UTF_8, and then pass it to ByteArrayInputStream.
To check if we succeed in our goal, we can read the inputStream using read(), and convert every byte to a char. This will return our original string.
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);
}
}
}
Output:
This is a sample string
Use StringReader and ReaderInputStream to Convert a String to an InputStream in Java
The second technique to convert the string to InputStream uses two methods, StringReader and ReaderInputStream. The former is used to read the string and wrap it into a reader while the latter takes two arguments, a reader and the charsets. At last, we get the 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);
}
}
}
Output:
This is a sample string
Use org.apache.commons.io.IOUtils to Convert a String to an InputStream
We can also use the Apache Commons library to make our task easier. The IOUtls class of this Apache Commons library has a toInputStream() method that takes a string and the charset to use. This method is easiest of all as we only have to call a single method to convert the Java string to InputStream.
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);
}
}
}
Output:
This is a sample string
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInRelated Article - Java String
- How to Perform String to String Array Conversion in Java
- How to Remove Substring From String in Java
- How to Convert Byte Array in Hex String in Java
- How to Convert Java String Into Byte
- How to Generate Random String in Java
- The Swap Method in Java
