關(guān)于while((b=in.read(by,0,by.length))!=-1),這個(gè)這的返回值是怎么回事?
如果說(shuō)in.read(by.0.by.;ength)讀滿之后返回的是-1;那么在上一個(gè)例子中的int bytes的值最后不就是-1了嗎
public void putByByteArrays(File file) throws IOException{
long start=System.currentTimeMillis();
FileInputStream in=new FileInputStream(file);
byte[] by=new byte[8*1024];
int bytes=in.read(by,0,by.length);
這里的bytes為什么不是-1?難道還沒(méi)有讀取完嗎?
for (int i=0;i<bytes;) {
if((by[i]&0xff)<=0xf){
System.out.print("0");
}
System.out.print(Integer.toHexString(by[i]&0xff)+" ");
if(++i%10==0){
System.out.println();
}
}
in.close();
long end=System.currentTimeMillis();
System.out.println("時(shí)間:"+(end-start));
}
2016-09-15
讀完了就返回 -1。
2016-07-03
out.write(buf,0,b);
將長(zhǎng)度為b(其中b = in.read(buf, 0, buf.length))的字節(jié)從字節(jié)數(shù)組buf的第0個(gè)位置開(kāi)始寫(xiě)入到流
2016-06-29
int bytes=in.read(by,0,by.length) 返回的是長(zhǎng)度。
while((b=in.read(by,0,by.length))!=-1)循環(huán)讀取,? 第一次直接讀完了,返回了長(zhǎng)度, 打印。 再循環(huán)讀,返回-1
2016-06-29
int b;
while((b=in.read(by,0,by.length))!=-1){
out.write(by,0,b);
System.out.println(b);
out.flush();
}
System.out.println("的值"+b)//;這里b的值確實(shí)是-1;
可是上一個(gè)例子中bytes為什么不是-1?