[英]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.