关于FileOutStream的write方法的疑问
老师,在视频教程中说道FileOutStream中有一个write方法:
public void write(byte[] b):将b.lenth个字节(即byte数组中的所有数组)从指定byte数组写入此文件输出流中
请问,如果有一个循环是让字节数组b不断读取一个输入流的内容(即数组b的内容不断变化),在循环体内不断调用创建好的FileOutStream对象来调用该write方法不断写数据(参数就是数组b),那这样是循环的最后一次的数据会覆盖掉前面所有循环次数的数据么,不是后面写的内容追加?
while((n=fis.read())!=-1){ //循环条件是n不等于-1(即没读完文件数据)
fos.write(b);
}
其中,fis、fos是事先定义好的字节输入流和字节输出流,b是实现定义好的用来存放读取输入流而获得的数据的字节数组
如:要读取的文件内容数据是:123
第一次读取到1,b数组内容是1
第二次读取到2,b数组内容是12
第三次读取到3,b数组内容是123
那么,
循环体内的fos调用的write方法
第一次写1
第二次写12
第三次写123
那么请问,最后写到字节输出流的数据是 123 还是 112123??(即是覆盖写还是追加写的问题)
正在回答
同学你好,创建输出流对象时,添加第二个参数。
参数值如果为true时,写入的数据追加到原来文本的末尾。
如果为false时,表示写入的字节数据覆盖文本原来的内容。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星