以下是摘自FileOutputStream的部分源碼:
????public?FileOutputStream(File?file)?throws?FileNotFoundException?{
????????this(file,?false);
????}
????public?FileOutputStream(File?file,?boolean?append)?throws?FileNotFoundException{
????????...
????????this.append?=?append;
??????????????????...
????}
可以看到創(chuàng)建FileOutput默認append屬性為false,即不會追加到文件末尾。
但是。
復(fù)制文件的時候有部分代碼如下:
????????while?((len?=?in.read(buf,?0,?buf.length))?!=?-1)?{
????????????out.write(buf,?0,?len);
????????}
為什么這里的write()方法不會覆蓋之前寫入的字節(jié)。
2017-10-21
我感覺這個參數(shù)設(shè)置的在創(chuàng)建這個FileOutputStream變量的時候的動作
append參數(shù)的不同會導(dǎo)致是創(chuàng)建新的文件還是在原先的文件末尾添加
而不會影響后面的write操作
write操作位置好像是依賴于iterator也就是迭代器的
2017-04-24
這個false是針對之前的文本文件,也就是說,你在一次操作中,覆蓋操作是相對于之前的文件。對本次操作是不會覆蓋的。