[英]Read bits from file
我如何从文件中读取位? 我写了一些类似的文件:
File plik=new File("bitowo");
FileOutputStream fos=new FileOutputStream(plik);
byte[] test =new byte[2];
test[0]=(byte)01101000;
test[1]=(byte)10101010;
fos.write(test);
fos.close();
和“ bitowo”只有2个字节,但是我怎么才能从文件“ bitowo”中逐位读取?
这个:
test[0]=(byte)01101000;
test[1]=(byte)10101010;
不执行您认为的操作。 具体来说,它不会使用代码似乎建议的位模式写入两个字节。
数字01101000
将被解释为八进制整数文字,因为它以0
开头。 以十进制表示,即为295424
。 当您将其转换为byte
,仅保留低8位,而这些恰好是0
。 因此,文件中的第一个字节为0
。
数字10101010
将解释为十进制整数文字(数字一千万,一百一十一万零一)。 同样,通过将其强制转换为byte
,仅保留低8位,因此文件中的第二个字节将包含值18
(十进制)。
如果您使用的是Java 7,则可以在代码中使用二进制文字,只需在数字前面加上0b
:
test[0]=(byte)0b01101000;
test[1]=(byte)0b10101010;
要读回两个字节,只需使用FileInputStream
打开文件并从中读取两个字节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.