[code=java]File dir = new File("c:\\pic");
File file = new File(dir,ip+"("+(++count)+").jpg");
while(file.exists())
file = new File(dir,ip+"("+(++count)+").jpg");
InputStream in = s.getInputStream();
FileOutputStream fos = new FileOutputStream(file);
OutputStream out = s.getOutputStream();
byte[] buf = new byte[1024*4];
int len = 0;
while((len=in.read(buf))!=-1)
{
fos.write(buf,0,len);
}
out.write("上传成功".getBytes());
fos.close();
s.close();[/code]以上是一个代码中的部分代码,我想请教的是 关于while((len=in.read(buf))!=-1)这部分 这个返回的len倒是是什么值,是不是存入到数组中有效数据的角标值?如果是角标值的话,那么为什么还要判断!=-1呢?如果没有数据的话就不往数组里面存了。是不是在底层调用的时候这样定义的?如果是的话,能不能把底层调用的原理给我讲一下了,谢谢。 |