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();
}
8
收起
正在回答 回答被采纳积分+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个数。所以整个文件能读完,又不会多写入。
1.Android 零基础入门
- 参与学习 人
- 提交作业 1789 份
- 解答问题 2907 个
Android大楼Java起,本阶段是Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始入门Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星