fos.write(b,0,n)这样写拷贝的文件就和源文件大小一致了?没有听明白

fos.write(b,0,n)这样写拷贝的文件就和源文件大小一致了?没有听明白

try {

FileInputStream fis=new FileInputStream("2.gif");

FileOutputStream fos=new FileOutputStream("2copy.gif");

int n=0;//存储读方法的返回值

byte[] b=new byte[1024];

while((n=fis.read(b))!=-1) {

//fos.write(b);

fos.write(b, 0, n);

}

fis.close();

fos.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

}catch (IOException e) {

e.printStackTrace();

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Charles_hzr 2020-07-05 12:41:04

fos.write(b,0,n), b是数组,0是位置,也就是从数组0开始,n是写多少个数,如果读出来的是n=1024个,那就是写入1024个数,如果最后一步读出来的是少于1024个,比如100个,那n=100,所以写入100个数。所以整个文件能读完,又不会多写入。

  • @黄钊仁 同学是正解。祝:学习愉快
    2020-07-05 19:08:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师