課程
/后端開發
/Java
/文件傳輸基礎——Java IO流
如題所示。
2017-03-23
源自:文件傳輸基礎——Java IO流 4-1
正在回答
b這里可以不進行&0xff,因為源碼里已經進行了該操作,另外我們讀取的本身就是一個字節,所以只取低八位不會改變原來的結果,只是輸出形態會有區別。
昵稱是JaVa 提問者
- -終于看懂了。點開源碼看了下,read()單獨往int里讀的那個,就是我們第一次寫的方法里,輸出的數已經是&0xff 在源碼中進行了這個操作,所以直接就可以轉換成16進制輸出。還有前面補0的那個操作,當小于或等于15時前面添加字符0,可以直接進行。但是我再read(數組,起始位,長度)這個方法時,出現問題,所以自己補了&0xff的操作,結果就一致了。。。更改了兩個地方。buf[i]&0xff)<=0xf 還有 ?Integer.toHexString(buf[i]&0xff)+" "
下面是源碼
public?int?read()?throws?IOException?{ ????if?(eof)?{ ????????return?-1; ????} ????temp?=?new?byte[1]; ????int?n?=?read(temp,?0,?1); ????if?(n?<=?0)?{ ????????return?-1; ????} ????return?temp[0]?&?0xff; }
這兒我也覺得應該進行與操作啊,b是int型,不進行與操作輸出就是32位的了。。但是看課程上好像沒有問題。
int類型數據,4個字節,如果有符號的整數且整數為負數,那么最高為是為1的,如果只取低八位是不行的,值會改變,如果整數數值很?。ǖ装宋荒軌虮硎荆┣腋呶环栁粸?即整數為正整數,可以這樣操作 ? ? ? 希望有幫助呢~
qq_頓首_0 回復 昵稱是JaVa 提問者
舉報
為您介紹IO流的使用,以及對象的序列化和反序列化的內容
5 回答為什么while((b=in.read())!=-1)會產生循環?
2 回答為什么我的Eclipse中 System.out.print(Integer.toHexString(b && 0xff)+" ");會報錯
2 回答int b = in.read(); 與int bytes = in.read(buf,0,buf.length);有什么差
4 回答單字節讀取時Integer.toHexString(b) 批量讀取時Integer.toHexString(buf[i]&0xff)
1 回答read(byte[] b)和read(byte[] b, int off, int len)有什么區別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-04-16
b這里可以不進行&0xff,因為源碼里已經進行了該操作,另外我們讀取的本身就是一個字節,所以只取低八位不會改變原來的結果,只是輸出形態會有區別。
2017-04-16
- -終于看懂了。點開源碼看了下,read()單獨往int里讀的那個,就是我們第一次寫的方法里,輸出的數已經是&0xff 在源碼中進行了這個操作,所以直接就可以轉換成16進制輸出。還有前面補0的那個操作,當小于或等于15時前面添加字符0,可以直接進行。但是我再read(數組,起始位,長度)這個方法時,出現問題,所以自己補了&0xff的操作,結果就一致了。。。更改了兩個地方。buf[i]&0xff)<=0xf 還有 ?Integer.toHexString(buf[i]&0xff)+" "
下面是源碼
2017-04-16
這兒我也覺得應該進行與操作啊,b是int型,不進行與操作輸出就是32位的了。。但是看課程上好像沒有問題。
2017-03-23
int類型數據,4個字節,如果有符號的整數且整數為負數,那么最高為是為1的,如果只取低八位是不行的,值會改變,如果整數數值很?。ǖ装宋荒軌虮硎荆┣腋呶环栁粸?即整數為正整數,可以這樣操作 ? ? ? 希望有幫助呢~