已采納回答 / 管理員
if(bytes = in.read(buf,0,buf.length))!=-1相當(dāng)于if(in.read(buf,0,buf.length)!=-1){//但是卻不能這么寫????bytes =?in.read(buf,0,buf.length);}可以研究一下怎么看jdk源碼如果讀到了末尾會返回一個值“-1”,方法就是這么定義的。
2015-07-23
已采納回答 / 幕布斯7272363
讀到的字節(jié)流是byte[] 數(shù)組裝 , 而不是 int bytes這個整型變量來裝,bytes 返回的是讀取到的字節(jié)個數(shù)
2015-07-18
最新回答 / yangyang533
readpublic abstract int read() ? ? ? ? ? ? ? ? ?throws IOException從輸入流中讀取數(shù)據(jù)的下一個字節(jié)。返回 0 到 255 范圍內(nèi)的 int 字節(jié)值。如果因為已經(jīng)到達流末尾而沒有可用的字節(jié),則返回值 -1。在輸入數(shù)據(jù)可用、檢測到流末尾或者拋出異常前,此方法一直阻塞。子類必須提供此方法的一個實現(xiàn)。返回:下一個數(shù)據(jù)字節(jié);如果到達流的末尾,則返回 -1。拋出:IOException - 如果發(fā)生 I/O
錯誤。從API的理解來看,read是每次讀取...
2015-07-15
已采納回答 / 一碗陽春面
新建記事本,內(nèi)容為空。另存為ANSI、unicode、utf-8,再去查看文件大小。你會發(fā)現(xiàn)ANSI的為0字節(jié),unicode為2字節(jié),utf-8的為3字節(jié)。所以個人猜測可能是記事本再另存為的時候會增加點隱藏內(nèi)容來區(qū)分文件的編碼類型。java工程中建立的utf-8編碼文本文件如果重新另存為utf-8一下,也會變成9字節(jié)的。
2015-07-12
最贊回答 / 許曉濤
比如說,現(xiàn)在有一個水管,水流很慢,一滴一滴的流,然后你只能一滴一滴的喝。不過呢你有了一個杯子(BuffederInputStream)你可以讓杯子一滴一滴的接著。什么時候不需要水了,拿起來直接喝掉。這就是緩沖區(qū)
2015-07-07
已采納回答 / 卓戈卡奧
第一個問題,應(yīng)該是利用反射機制實現(xiàn)的,因為通過使用反射是可以實現(xiàn)對象的私有方法的調(diào)用的。第二個問題,視頻沒有仔細(xì)看,暫時沒辦法回答
2015-07-02
已采納回答 / 墨雨憶詩
緩沖區(qū)的每次的復(fù)制文件的速度是會發(fā)生變化的,不是固定不變的(你自己可以試試),而且,批量緩存的速度太快了,而緩存速度又會或上或下的改變,因此,我們無法做出正確的判斷,所以,用批量緩存來判斷緩存區(qū)對文件的復(fù)制效率是不準(zhǔn)確的
2015-06-15
已采納回答 / 源代碼_思無邪
在這個程序里,你的這個變量bytes=in.read(buf,0,buf.length),得到的是讀取的字節(jié)個數(shù)。用它去判斷是否小于等于15(bytes<=oxf)是沒有意義的。應(yīng)該是在for循環(huán)內(nèi)通過判斷if(buf[i]<=oxf)單個字節(jié)是否小于等于15才有意義。你說前面的可以,可能你用的是bytes=in.read();這是每次讀取一個字符,當(dāng)然可以。請記清楚,int?bytes = in.read(buf,0,buf.length)和int?bytes=in.read()是完全不同的...
2015-05-17