要求:
1,byte[]里可为任何值,并不一定局限于字符
2,转换成String,不过不用管String的内容,但要求
3,能将String还原成byte[]就行了。byte[] content = new byte[is.available()];
content = is.read(content, 0, is.available());
String strContent = new String(content);byte[] content2 = strContent.getBytes();这里取得的content2 != content了有什么好方法吗

解决方案 »

  1.   

    no way
    content2 != content这是肯定的,即便里面的元素相同,它们也是不同的对象,当然不相等了
      

  2.   

    而且String辨认到0x00就认为到了结尾,后面的byte也不添加了。
      

  3.   

    content!=content2  代表物理地址不相等
      

  4.   

    content!=content2
    我的意思是 内容不一致。
    内容能一样就OK
      

  5.   

    〉fool_leave(请及时结贴) 
    〉而且String辨认到0x00就认为到了结尾,后面的byte也不添加了。可能是这个原因,有什么办法解决吗
      

  6.   

    首先 content 是不是确实代表一字符串,而不是混入了什么 4 字节 8 字节的数字;其次就是编码。
      

  7.   

    〉YidingHe(机枪兵) 
    〉首先 content 是不是确实代表一字符串,而不是混入了什么 4 字节 8 字节的数字;其次就是编码。content是byte[],确切地说是从文件里读进来的(zip, jpg, gif, exe等任意文件),
      

  8.   

    明白楼主的意思,这个无损转换很有用的, 刚好我也问过这问题,你可以参考一下我的帖子,有很多热心朋友的解答,或许可以给你一些提示http://community.csdn.net/Expert/topic/5179/5179125.xml?temp=.2834894
      

  9.   

    为什么要比较byte,反过来补救可以了吗?new String()比较
      

  10.   

    解决了。
    我选用了一个偷懒的方法:
    1)byte[] -> 用" "分隔的String
    2)String[] arr = String.spit(" ");
    3) arr[i]->int ->byte -> byte[i]thanks everybody!!