关于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));
}