文件写入时能不能按bit而不是byte? 当然可以。将一个byte转换成二进制序列,然后变成字符串再写入文件就成了。读取的时候做相反的转换。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上的意思是把byte中的每个bit转成‘0’、‘1’字符再写入文件?按此方法,如果bit流是n bits结果文件的大小是n乘8。楼主的意思不是很清楚,文件总是以byte为单位的所以你不可能一个bit一个bit地写(所以楼上是将bit以字符的形式转成byte)。你的意思是按bit流顺序而不是按byte顺序写,因为bit流顺序和byte里的bit顺序不同? Reader 与Writer是基于字节流的;InputStream和OutputStream是二进制流 你可以试试:用DataOutputStream包装FileOutputStream,利用writeBoolean()方法,对给定的BIT串,如果是1,writeBoolean(true),如果是0,writeBoolean(false)。最后看看是什么样的。 另外:halfpro(学好Java)说的不对,READER/WRITER是针对字符的,INPUTSTREAM/OUTSTREAM是针对字节的。 用2进制流来写,不要用字符形式写就行了用DataOutputStream这个Filter来控制输出 大疯狂,我试了,还是不行比如我输出d0.writeBoolean(true);d0.writeBoolean(false);d0.writeBoolean(false);d0.writeBoolean(false);d0.writeBoolean(false);d0.writeBoolean(false);d0.writeBoolean(false);d0.writeBoolean(false);得到8个字节,分别为16进制的01,00,00,00,00,00,00,00而我想得到的是二进制的10000000,即16进制的80 这样啊。那你直接写byte不就可以了,出来的文件表面上看是byte流,实际上就是你要的8D啊。你试试RandomAccessFile和DataOnputStream看。 Be aware that if your input is from network you better do big/little endian convertion to preserve the bit order. Otherwise your "10001101" (8D) could end up "10110001" (B1). 再散200分 byte数组的比较? 帮我看看什么地方错了,谢谢!! Socket 编程的初级问题 如何在程序中用一个动作来控制循环? 通过char将String转换成byte数组 请问应该怎样达到如下的效果! 但一次用jbuilder7,天啊!救救我吧! 急:e.printStackTrace()与Category.error(...)的矛盾 JBuilder中为什么没有同Delphi一样的工具条呢?书上可画着呀? 500分求张孝祥java it就业培训教程 视频讲座 谁能解释一下useBean中的beanName从文件的具体做法?
用DataOutputStream包装FileOutputStream,利用writeBoolean()方法,对给定的BIT串,如果是1,writeBoolean(true),如果是0,writeBoolean(false)。最后看看是什么样的。 另外:halfpro(学好Java)说的不对,READER/WRITER是针对字符的,INPUTSTREAM/OUTSTREAM是针对字节的。
比如我输出
d0.writeBoolean(true);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);
d0.writeBoolean(false);得到8个字节,分别为16进制的01,00,00,00,00,00,00,00
而我想得到的是二进制的10000000,即16进制的80