簡體   English   中英

從文件讀取位

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM