FileInputStream in = new FileInputStream("demo/1.txt");int b = 0;while((b = in.read()) != -1){********}這段小代碼應該沒問題,我想問的就是,如果b是每次能讀取的8位數據進行判斷后,再進入循環體。那么,b這個32位的int型變量,在每一次讀取時是不是就代表了每次只利用了b的32位里的低8位存儲?如果文本中的數據剛好有個低8位就能表示為-1的數據,這時候b讀取到怎么判斷ta不是文本結束的標識而只是內容?這里文本結束標識的-1的2進制表示是 32位的么?
1 回答
已采納

天啟之魂
TA貢獻174條經驗 獲得超85個贊
8個字節能表示的int 字節值只能是0~255 ?即00000000 ~11111111 ?所以不可能出現剛好低八位表示為-1的數據
read()方法只有在讀取?數據時 遇到數據的結尾標識 發現后面沒有數據可讀的情況下 才會返回-1
添加回答
舉報
0/150
提交
取消