關于while((b=in.read(by,0,by.length))!=-1),這個這的返回值是怎么回事?
如果說in.read(by.0.by.;ength)讀滿之后返回的是-1;那么在上一個例子中的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?難道還沒有讀取完嗎?
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("時間:"+(end-start));
}
2016-09-15
讀完了就返回 -1。
2016-07-03
out.write(buf,0,b);
將長度為b(其中b = in.read(buf, 0, buf.length))的字節從字節數組buf的第0個位置開始寫入到流
2016-06-29
int bytes=in.read(by,0,by.length) 返回的是長度。
while((b=in.read(by,0,by.length))!=-1)循環讀取,? 第一次直接讀完了,返回了長度, 打印。 再循環讀,返回-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的值確實是-1;
可是上一個例子中bytes為什么不是-1?