aandroidtest aandroidtest - 9 months ago 88
Android Question

Converting Byte Array to String and vice versa

I am using the Android javax API to encrypt a string which returns a byte array which I again convert into String (purpose is to write to textfile later).

Now using this String, I convert to byte array to decrypt which returns another byte array which I convert again to String.

I could not get this to work. I narrowed down the issue to the string conversion to byte array portion. Because if i use the encrpted byte array to decrypt and then get the String it works.

Not sure what's the issue. I have used the following for the conversion:

String str;
Byte [] theByteArray = str.getBytes("UTF-8");
String val = new String (theByteArray , "UTF-8");


Byte [] theByteArray = str.getBytes();
String val = new String (theByteArray);

What is the best way to convert from byte array to string and vice versa without losing anything?

Thanks In Advance

Answer Source

You can use apache library's Hex class. It provides decode and encode functions.

String s = "42Gears Mobility Systems";
byte[] bytes = Hex.decodeHex(s.toCharArray());

String s2 = new String(Hex.encodeHex(bytes));