1.txt文本存储的内容转换成二进制字符存储于另一个2.txt文本中
这是我写的将二进制字符再转换成原有字符存储时的代码
不过输出的大部分是乱码,如何改进??????while ((lineStr = br.readLine()) != null)
 {
String str[]=lineStr.split(" ");
char[] b=new char[str.length];
for(int i=0;i<str.length;i++)
{
for(int j=0;j<8;j++)
{
if(str[i].length()<8)
{
str[i]="0"+str[i];
}
else
j=8;
}
String one[]=str[i].split("");
int aa=Integer.parseInt(one[1])*2*2*2+Integer.parseInt(one[2])*2*2+Integer.parseInt(one[3])*2+Integer.parseInt(one[4]);
int bb=Integer.parseInt(one[5])*2*2*2+Integer.parseInt(one[6])*2*2+Integer.parseInt(one[7])*2+Integer.parseInt(one[8]);
b[i]=(char)Integer.decode("0x"+String.valueOf(aa)+String.valueOf(bb)).intValue();
}
 bw.write(new String(b));
 }

解决方案 »

  1.   

    public class Test{
    public static void main(String[] args){
    int n=4;
    for(int i=31;i>=0;i--){
    if((n&(1<<i))==0){
          System.out.print('0');
    }else{
    System.out.print('1');
    }
    }
    System.out.print('\n');
    }
    LZ看看二进制这样转好就好了,使用移位就好了
      

  2.   

    是否有多字节字符?
    final Pattern pattern = Pattern.compile("[10]+");
    StringBuffer buff = new StringBuffer();
    Matcher m = null;while ((lineStr = br.readLine()) != null) {
    buff.delete(0, buff.length());
    m = pattern.matcher(lineStr);
    while (m.find()) {
    int intValue = Integer.parseInt(m.group(), 2);
    buff.append((char)intValue);
    }
    bw.write(buff.toString());
    }