问题描述
byte[] b = new byte[fis.available()];StringBuilder str = new StringBuilder();fis.read(b);for(byte bs:b){ str.append(Integer.toBinaryString(bs));//转换为二进制 }fis.close();我通过这种方式将一个byte[]转换为二进制的字符串。里面全是0和1字符。现怎么将这种二进制字符串转换为byte[]数组?我知道有其它将byte[]和字符串之间互相转换的方法。但我现在只求这种二进制字符串的转换方法。拜托各位了。。 问题补充:kidding87 写道
解决方案
少年,强烈建议把让你做这个的人干掉!下面就是那个变态要的 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); }
解决方案二:
webservice的协议可以使用http、xml的格式的数据呀而且String 直接由getBytes()这个方法
解决方案三:
不知道你转这些需要做什么,对于认知上来说,其实它就是01010的二进制,只是显示上的区别而已
解决方案四:
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]);}
解决方案五:
上面说的对,你要每个byte一个二进制字符串才可能转回去
解决方案六:
你这样转后str 就是010101111这样的字符串这个没有分隔是不能逆转回去的啊