在?byte[] buf = new byte[1024];????????????int len = -1;????????????while((len = i.read(buf)) != -1) {????????????????System.out.println(new String(buf,0,len));????????????}中l(wèi)en為啥定義為0或者-1?還有主要是len = i.read(buf)) != -1這句理解不了是啥意思?
1 回答
已采納

亞努人
TA貢獻58條經(jīng)驗 獲得超75個贊
i.read(buf)是從字節(jié)數(shù)組中讀取字節(jié),并且把每次讀取字節(jié)的長度(就是下標位置)賦值給len,只要是buf數(shù)組有長度包括0,都會執(zhí)行循環(huán),打印buf中從0到len的內(nèi)容。數(shù)組中的下標是不會有-1的,所以len的初始值設(shè)為-1,如果buf里根本沒有內(nèi)容,則循環(huán)條件不滿足,不會打印讀取的內(nèi)容了。
添加回答
舉報
0/150
提交
取消