Android 将字节数组转换为字符串,反之亦然

Android 将字节数组转换为字符串,反之亦然,android,Android,我正在使用Android javax API加密一个字符串,该字符串返回一个字节数组,我再次将其转换为字符串(目的是稍后写入文本文件) 现在使用这个字符串,我将其转换为字节数组进行解密,这将返回另一个字节数组,我将其再次转换为字符串 我没法让它工作。我把问题缩小到字符串到字节数组的转换部分。因为如果我使用加密字节数组来解密,然后得到字符串,它就可以工作了 不确定是什么问题。我已将以下内容用于转换: String str; Byte [] theByteArray = str.getBytes("

我正在使用Android javax API加密一个字符串,该字符串返回一个字节数组,我再次将其转换为字符串(目的是稍后写入文本文件)

现在使用这个字符串,我将其转换为字节数组进行解密,这将返回另一个字节数组,我将其再次转换为字符串

我没法让它工作。我把问题缩小到字符串到字节数组的转换部分。因为如果我使用加密字节数组来解密,然后得到字符串,它就可以工作了

不确定是什么问题。我已将以下内容用于转换:

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

and 

Byte [] theByteArray = str.getBytes();
String val = new String (theByteArray);
在不丢失任何内容的情况下,从字节数组转换为字符串或从字节数组转换为字符串的最佳方法是什么


提前感谢

您可以使用apache库的类。它提供了许多功能

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

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

如果您确实需要另一种方法将字节数组存储为字符串,反之亦然,那么最好的方法是使用,这样您就不会丢失任何数据。这里是你可以下载zip的地方。提取zip并将类文件包含在项目中。然后在需要编码和解码的地方使用以下代码段

//对数据进行编码并转换为字符串

ByteArrayOutputStream bao = new ByteArrayOutputStream();
 bitMap.compress(Bitmap.CompressFormat.JPEG, 90, bao);
  byte [] ba = bao.toByteArray();
  String ba1=Base64.encodeBytes(ba);
//再次将数据解码为字节数组

try{
            byte[] ba3 = Base64.decode(ba1);

    }catch(Exception e)
            {

            }

您好,我尝试了Base64,但当我从文本文件中读取Base64编码字符串进行解码时,它显示了错误的Base64错误。你知道怎么了吗?@aandroidtest你可能在什么地方出错了。如果可能的话,粘贴代码,特别是应用此机制和logcat的代码段。除非那是很难回答的…可能的重复