‘java.io.OutputStream’ is the abstract superclass of all the classes representing an output stream of bytes. An output stream accepts output bytes and sends them to some sink/destination.
Following examples explain how to convert different a ByteArrayOutputStream object to string in Java.
Example 1: Convert ByteArrayOutputStream to string.
Get the byte array from ByteArrayOutputStream object.
byte[] byteArr = byteArrayOutputStream.toByteArray();
Initialize the string using byte array.
String str2 = new String(byteArr);
Find the below working application.
OutputStreamToStringDemo1.java
package com.sample.app.streams;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class OutputStreamToStringDemo1 {
public static void main(String[] args) throws IOException {
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
String str1 = "Hello World!!!!";
byteArrayOutputStream.write(str1.getBytes());
byte[] byteArr = byteArrayOutputStream.toByteArray();
String str2 = new String(byteArr);
System.out.println("str1 : " + str1);
System.out.println("str2 : " + str2);
}
}
}
Output
str1 : Hello World!!!! str2 : Hello World!!!!
Example 2: Using toString method of ByteArrayOutputStream.
ByteArrayOutputString#toString method converts the buffer's contents into a string decoding bytes using the platform's default character set.
String str2 = byteArrayOutputStream.toString();
OutputStreamToStringDemo2.java
package com.sample.app.streams;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class OutputStreamToStringDemo2 {
public static void main(String[] args) throws IOException {
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
String str1 = "Hello World!!!!";
byteArrayOutputStream.write(str1.getBytes());
String str2 = byteArrayOutputStream.toString();
System.out.println("str1 : " + str1);
System.out.println("str2 : " + str2);
}
}
}
Output
str1 : Hello World!!!! str2 : Hello World!!!!
You can even set the character set to decode the byte array to string using following toString methods.
public synchronized String toString(Charset charset)
public synchronized String toString(String charsetName)
Converts the buffer's contents into a string by decoding the bytes using the specified charset.
An invocation of this method of the form
String str = byteArrayOutputStream.toString("UTF-8");
behaves in exactly the same way as the below expression.
String str = byteArrayOutputStream.toString(StandardCharsets.UTF_8);
OutputStreamToStringDemo3.java
package com.sample.app.streams;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class OutputStreamToStringDemo3 {
public static void main(String[] args) throws IOException {
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
String str1 = "Hello World!!!!";
byteArrayOutputStream.write(str1.getBytes());
String str2 = byteArrayOutputStream.toString("UTF-8");
String str3 = byteArrayOutputStream.toString(StandardCharsets.UTF_8);
System.out.println("str1 : " + str1);
System.out.println("str2 : " + str2);
System.out.println("str3 : " + str3);
}
}
}
Output
str1 : Hello World!!!! str2 : Hello World!!!! str3 : Hello World!!!!
You may like
Copy the content of file to other location
How to download a binary file in Java?
No comments:
Post a Comment