Java将字符串转换为byte []

时间:2012-05-01 09:24:18

标签: java android json

我想知道如果要转换包含字节数组的字符串,实际上是从图像到字节数组的字节,你应该怎么做。

我想这是一个非常常见的问题,所以我想有人可以给出任何建议。

如果将JSONArray转换为字节数组更好,我想知道原因。

2 个答案:

答案 0 :(得分:6)

  

我想知道如果要转换包含字节数组的字符串,实际上是从图像到字节数组的字节,你应该怎么做。

这取决于你首先构建字符串的方式。如果某处某处使用了

new String(imageData)

然后你可能已经丢失了信息。图像数据不是文本。

要在文本中传播不透明的二进制数据,应该使用base64(或可能是hex)。 Android已经有一个Base64类,可以轻松实现:

String text = Base64.encodeToString(originalBytes, Base64.DEFAULT);

...

byte[] roundTrip = Base64.decode(text, Base64.DEFAULT);

编辑:如果您不能使用该课程,this public domain base64 encoder应该可以正常使用。

答案 1 :(得分:0)

字节[]到字符串

ByteArrayOutputStream baos = new ByteArrayOutputStream();  
Your_Bitmap.compress(CompressFormat.PNG, 0 , baos); //bm is the bitmap object   
byte[] b = baos.toByteArray(); 
String bytetostring = Base64.encodeToString(b, Base64.DEFAULT);
return bytetostring ;

字符串到字节[]

byte[] data = Base64.decode("Your string", Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);