![In Java How to convert Byte[] Array To String and String to Byte[]?](https://crunchify.com/wp-content/uploads/2020/12/In-Java-How-to-convert-Byte-Array-To-String-and-String-to-Byte.png)
How to convert Byte[] Array to String in Java? How to convert UTF-8 byte[] to string? Convert Java Byte Array to String to Byte Array.
String stores textual data and for storing binary data you would need byte[]. In ideal situation you would avoid using the same in your production ready build. Here is a code, just incase if you need to do conversion in your application from String to byte[] and vice versa.
There are multiple ways you could covert byte[] to String and String to byte[].
We will manipulate String and byte[] 5 different ways.
- Convert String to byte[] Array using getBytes()
- Convert String to byte[] Array using UTF_8 encoding
- Encode and Decode to String using Base64 encoding
- Convert Byte[] to String using new String()
- Convert Byte[] to String using UTF_8 encoding
toString() function on String object wont return actual string but only HashValue. Look for all comments mentioned in below Java program.
Java Code:
package crunchify.com.tutorials;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Base64;
/**
* @author Crunchify.com
* In Java How to convert Byte[] Array To String and String to Byte[]?
* Version: 1.2
*/
public class CrunchifyByteArrayToString {
public static void main(String[] args) throws UnsupportedEncodingException {
// Method-1: Convert String to byte[] Array using getBytes()
String crunchifyString = "Crunchify Example on Byte[] to String...";
// getBytes() encodes this String into a sequence of bytes using the platform's
// default charset, storing the result into a new byte array.
byte[] crunchifyByte = crunchifyString.getBytes();
System.out.println("crunchifyString : " + crunchifyString);
// toString() Returns a string representation of the contents of the specified array.
// The string representation consists of a list of the array's elements, enclosed in square brackets ("[]"). Adjacent elements are separated by the characters ", " (a comma followed by a space).
// Elements are converted to strings as by String.valueOf(byte). Returns "null" if a is null.
System.out.println("crunchifyByte : " + Arrays.toString(crunchifyByte));
// Method-2: Convert String to byte[] Array using UTF_8 encoding
String crunchifyString2 = "This is test for converting String to byte...!";
byte[] crunchifyByte2 = crunchifyString2.getBytes(StandardCharsets.UTF_8);
System.out.println("\ncrunchifyString2 : " + crunchifyString2);
System.out.println("crunchifyByte2 : " + Arrays.toString(crunchifyByte2));
// Method-3: Encode and Decode to String using Base64 encoding
// encodeToString() Encodes the specified byte array into a String using the Base64 encoding scheme.
// This method first encodes all input bytes into a base64 encoded byte array and then constructs
// a new String by using the encoded byte array and the ISO-8859-1 charset.
String crunchifyEncodedValue = Base64.getEncoder().encodeToString(crunchifyByte2);
System.out.println("crunchifyByte2 encoded value : " + crunchifyEncodedValue);
// decode() Decodes a Base64 encoded String into a newly-allocated byte array using the Base64 encoding scheme.
// An invocation of this method has exactly the same effect as invoking decode(src.getBytes(StandardCharsets.ISO_8859_1))
byte[] crunchifyByte3 = Base64.getDecoder().decode(crunchifyEncodedValue);
System.out.println("crunchifyByte2 decoded value : " + Arrays.toString(crunchifyByte3));
// Method-4: Convert Byte[] to String using new String()
String crunchifyDecodedData = new String(crunchifyByte3);
System.out.println("\nDecrypted String : " + crunchifyDecodedData);
// Method-5: Convert Byte[] to String using UTF_8 encoding
String decodedDataUsingUTF8;
// UTF_8 is Eight-bit UCS Transformation Format.
decodedDataUsingUTF8 = new String(crunchifyByte3, StandardCharsets.UTF_8);
System.out.println("Text Decrypted using UTF-8 : " + decodedDataUsingUTF8);
}
}
Eclipse console Output:
Just run above program as Java Application and you should see similar result.
crunchifyString : Crunchify Example on Byte[] to String... crunchifyByte : [67, 114, 117, 110, 99, 104, 105, 102, 121, 32, 69, 120, 97, 109, 112, 108, 101, 32, 111, 110, 32, 66, 121, 116, 101, 91, 93, 32, 116, 111, 32, 83, 116, 114, 105, 110, 103, 46, 46, 46] crunchifyString2 : This is test for converting String to byte...! crunchifyByte2 : [84, 104, 105, 115, 32, 105, 115, 32, 116, 101, 115, 116, 32, 102, 111, 114, 32, 99, 111, 110, 118, 101, 114, 116, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 32, 116, 111, 32, 98, 121, 116, 101, 46, 46, 46, 33] crunchifyByte2 encoded value : VGhpcyBpcyB0ZXN0IGZvciBjb252ZXJ0aW5nIFN0cmluZyB0byBieXRlLi4uIQ== crunchifyByte2 decoded value : [84, 104, 105, 115, 32, 105, 115, 32, 116, 101, 115, 116, 32, 102, 111, 114, 32, 99, 111, 110, 118, 101, 114, 116, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 32, 116, 111, 32, 98, 121, 116, 101, 46, 46, 46, 33] Decrypted String : This is test for converting String to byte...! Text Decrypted using UTF-8 : This is test for converting String to byte...! Process finished with exit code 0
Let me know if you see any issue running above program.
