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