现在的问题是,我有一个.txt的文本,用流把文件读到以个byte数组,.txt中的字符变成了asc码.
   然后用Integer.toBinaryString(byte[i]);asc码转成了二进制的字符串.
   我现在的问题是,怎么把.txt的文本转正二进制数字来表示,就是我用编辑器打开的时候,它是二进制的编码.
   请各位帮忙...
   目的是比较两种文件存储的大小比较.

解决方案 »

  1.   

    自己说两句结贴.
    针对自己的问题.
    .txt文件中包含了字母和数字.
    不论是以FileReader fRead=new FileReader("test.txt");还是以FileInputStream来读,文本中的每一个字符都会占用1Byte的大小,FileReader是以字符读,FileInputStream是以字符的ASC码读,包括文本中的数字字符.如果以计算的方式去把字符/ASC码转为二进制,对我遇到的问题没有任何意义.大家可以测试一下:
    byte[] data = new byte[1024];
    data[0] = 1;
    将一个0-127的整数放到字节数组,再输出到控制台输出的是这个整数的ASC码
    如果你把它以字节流FileOutputStream写到文件中它转为8bit的二进制数,其实还是占一个字节.
    如果真的是要压缩就只能通过计算的方式按位来存储,而且需要知道压缩的规则.
    比如你的数据文件中数据大小定义好了,某些属性的值用不了一个字节来存储,如只占用了4bit还剩下4个bit,那么就可以想办法利用起来.对于并发量巨大,带宽有限的网络系统,报文大小就是一个非常重要的指标.