[code="java"]byte[] b = new byte[fis.available()];
StringBuilder str = new StringBuilder();
fis.read(b);
for(byte bs:b){
str.append(Integer.toBinaryString(bs));//转换为二进制
}
fis.close();[/code]
我通过这种方式将一个byte[]转换为二进制的字符串。里面全是0和1字符。现怎么将这种二进制字符串转换为byte[]数组?我知道有其它将byte[]和字符串之间互相转换的方法。但我现在只求这种二进制字符串的转换方法。拜托各位了。。
少年,强烈建议把让你做这个的人干掉!
下面就是那个变态要的
public static byte[] byte2String(String binaryByteString){
//假设binaryByte 是01,10,011,00以,分隔的格式的字符串
String[] binaryStr=binaryByteString.split(",");
byte[] byteArray=new byte[binaryStr.length];
for(int i=0;i<byteArray.length;i++){
byteArray[i]=(byte)parse(binaryStr[i]);
}
return byteArray;
}
public static int parse(String str){
//32位 为负数
if(32==str.length()){
str="-"+str.substring(1);
return -(Integer.parseInt(str, 2)+Integer.MAX_VALUE+1);
}
return Integer.parseInt(str, 2);
}
你这样转后str 就是010101111这样的字符串
这个没有分隔是不能逆转回去的啊
上面说的对,你要每个byte一个二进制字符串才可能转回去
[code]
String input = "1001010,1101010,11";
String[] inputs = input.split(",");
byte[] outputs = new byte[inputs.length];
for (int i = 0; i < outputs.length; i++) {
outputs[i] = Byte.parseByte(inputs[i],2);
System.out.println(outputs[i]);
}
[/code]
不知道你转这些需要做什么,对于认知上来说,其实它就是01010的二进制,只是显示上的区别而已
webservice的协议可以使用http、xml的格式的数据呀
而且String 直接由getBytes()这个方法