In some cases, we have to convert the String variable into a Byte array format, for example, JCE encryption. However, how do we convert a Byte[] array to a String afterward?
Simple toString() function like the following code is not a working property. It will not display the original text but the byte value.
String s = bytes.toString();
In order to convert the Byte array into String format correctly, we have to explicitly create a String object and assign the Byte array to it.
String s = new String(bytes);
And here's a sample code:
public class TestByte { public static void main(String[] argv) { String example = "This is an example"; byte[] bytes = example.getBytes(); System.out.println("Text : " + example); System.out.println("Text [Byte Format] : " + bytes); System.out.println("Text [Byte Format] : " + bytes.toString()); String s = new String(bytes); System.out.println("Text Decryted : " + s); } }
Output
Text : This is an example Text [Byte Format] : [B@70fccc53 Text [Byte Format] : [B@70fccc53 Text Decryted : This is an example