int b = in.read(); 與int bytes = in.read(buf,0,buf.length);有什么差
int b = in.read();? 這句代碼執(zhí)行后,b 表示讀取到的字節(jié)。
int bytes? = in.read(buf,0,buf.length);執(zhí)行后,bytes表示的是讀到的字節(jié)個數(shù)。
是方法就是這樣定義的嗎?
int b = in.read();? 這句代碼執(zhí)行后,b 表示讀取到的字節(jié)。
int bytes? = in.read(buf,0,buf.length);執(zhí)行后,bytes表示的是讀到的字節(jié)個數(shù)。
是方法就是這樣定義的嗎?
2016-10-03
舉報
2016-10-04
這兩個的差別,實際上是read()方法兩種重載方式的差別。
in.read()表示單字節(jié)讀取,相當(dāng)于一滴一滴水(字節(jié))地去灑
in.read(byte[] buf ,int start ,int size )表示字節(jié)先讀取到buf緩沖區(qū),start表示緩沖區(qū)的起始位置,size表示存入緩沖區(qū)的大小。這種方式相當(dāng)于先把一滴一滴水(字節(jié))放到一個桶(buf)里,當(dāng)然這個桶肯定有大?。╯ize),當(dāng)桶里的水達(dá)到一定程度(緩沖區(qū)的極限)時,再將整個桶里的水灑出去。
授人以魚不如授人以漁
詳細(xì)課程可以去看看 慕課網(wǎng)Java專題的 【文件傳輸基礎(chǔ) Java I/O 流】
http://idcbgp.cn/learn/123