吃了個飯回來,改成if((buf[i]>>>1)<=0x8)這樣就對了~終于搞定了,求老師回復~
2014-11-27
if(buf[i]<=0xf)這句有問題的!這里buf[i]是byte類型,雖然比較的時候會自動變成int,但是如果它的最高位是1的話,它始終都是負數??!難怪我的中文文本里面會出現很多0a 0d 0a 0ce 0ca 0d1 0a6 0d7 0dc 0d2這種情況,但是英文字符就是對的! 老師這里應該說明一下的!
2014-11-27
第二個方法實現出現問題都不告訴學生,老師自己的代碼都被改掉了吧?而且運行結果還是跟第一個方法不一樣!被老師一帶而過了!
2014-11-27
已采納回答 / 好幫手慕珊
不是一次性都讀取到buf數組中,看下面的代碼第5行,通過read方法讀到buf數組中,buf數組滿了就進行處理(轉換成16進制顯示),然后再接著讀,直到讀到文件末尾為止。FileInputStream in = new FileInputStream("e:\javaio\1.mp3"); byte[] buf = new byte[8 * 1024]; ?int bytes = 0; ?int j = 1; ?while((bytes = in.read(buf,0,buf.length))!=-1)...
2014-11-26
最贊回答 / 源代碼_思無邪
建立數組進行讀文件,就是為了讀取文件內容時快一些而己,不管你建多大的數組(當然還受內存大小影響),總會有你一次讀不了的文件。你首先要明白你讀文件是為了干什么?有沒有必要一次將文件都讀到流中,象老師講的例子:復制文件,或者是將大文件分割再合成等就沒有必要一次將文件讀到流中呀。一次性讀不完,老師的例子里說得很清楚了呀:就是那個while((b=in.read(buf, 0, buf.length))!=-1)語句,沒有讀完就一直循環,只到讀到文件尾。
2014-11-26
while((int i = read(byte【】 b ,int satrt ,int sist))!= -1?? ) 為什么 不等于-1可以用判斷 ,返回的不是 已經讀取的個數嗎
2014-11-19