要求:
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,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了有什么好方法吗
content2 != content这是肯定的,即便里面的元素相同,它们也是不同的对象,当然不相等了
我的意思是 内容不一致。
内容能一样就OK
〉而且String辨认到0x00就认为到了结尾,后面的byte也不添加了。可能是这个原因,有什么办法解决吗
〉首先 content 是不是确实代表一字符串,而不是混入了什么 4 字节 8 字节的数字;其次就是编码。content是byte[],确切地说是从文件里读进来的(zip, jpg, gif, exe等任意文件),
我选用了一个偷懒的方法:
1)byte[] -> 用" "分隔的String
2)String[] arr = String.spit(" ");
3) arr[i]->int ->byte -> byte[i]thanks everybody!!