类型转换:字节[]到字符串,字符串到字节[]

时间:2013-06-16 20:02:43

标签: java android type-conversion

我正在尝试用于教育目的,使用Android相机获取照片并使用SOAP将其发送到网络服务。

首先,相机发给我一个byte[]数组,但这不是可序列化的,我无法将其发送到网络服务。现在我正在尝试将其转换为String(此类型可序列化),并在网络服务中将此String重新转换为byte[]数组。

我怎么做?

例如,我正在尝试:

request.addProperty("photo", (Arrays.toString((byte[])params[0])));

我如何获得此String并转换为原始byte[]

提前致谢!

3 个答案:

答案 0 :(得分:2)

如果您确实需要将byte[]转换为String,请使用适用于任意字节数据的中间序列化,例如Base64String用于字符数据,而不是任意byte[] s。

Android's Base64 class使上述变得微不足道。

这个问题几乎与Android: using Base64 to encode an Image to String重复。

答案 1 :(得分:1)

如果您的网络服务仅支持ASCII输入,您可以在base 64中对数据进行编码:Base64 Encoding in Java

答案 2 :(得分:0)

最后我用它将byte []发送到Web服务并对其进行解码。 谢谢!

ANDROID SOAP SERVICE:

request.addProperty("photo", Base64.encodeToString((byte[])params[0], Base64.DEFAULT));

SOAP WEBSERVICE

BASE64Decoder decoder = new BASE64Decoder();                    
byte[] a = decoder.decodeBuffer(VAR);