可以指定1M,然后用循环,就是你每读一M,然后就写出一M,因为输入流和输出流都会有光标记忆上次读到位置,这样就可以保证绵绵不绝的读取和写入了。
while((len=fis.read(b))!=-1){
fos=new FileOutputStream("f:\\"+(count++)+".part");
fos.write(b,0,len);
fos.close();
}
你这里代码的意思就是,当fis.read(b)读到1M时,这是len=1024,不等于-1,判断为true,所以往下执行,fos.write(b,0,len);的意思是把缓存数组里面的内容写出道文件上,长度为len,然后在判断,在读,在写,直到到了文件的末尾,即len=fis.read(b)=-1,循环结束。 |