为了账号安全,请及时绑定邮箱和手机立即绑定

关于write()方法的append问题

以下是摘自FileOutputStream的部分源码:
    public FileOutputStream(File file) throws FileNotFoundException {
        this(file, false);
    }
    public FileOutputStream(File file, boolean append) throws FileNotFoundException{
        ...
        this.append = append;
                  ...
    }
可以看到创建FileOutput默认append属性为false,即不会追加到文件末尾。
但是。
复制文件的时候有部分代码如下:
        while ((len = in.read(buf, 0, buf.length)) != -1) {
            out.write(buf, 0, len);
        }
为什么这里的write()方法不会覆盖之前写入的字节。


正在回答

2 回答

我感觉这个参数设置的在创建这个FileOutputStream变量的时候的动作

append参数的不同会导致是创建新的文件还是在原先的文件末尾添加

而不会影响后面的write操作

write操作位置好像是依赖于iterator也就是迭代器的

0 回复 有任何疑惑可以回复我~

这个false是针对之前的文本文件,也就是说,你在一次操作中,覆盖操作是相对于之前的文件。对本次操作是不会覆盖的。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
文件传输基础——Java IO流
  • 参与学习       133751    人
  • 解答问题       1030    个

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

进入课程

关于write()方法的append问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信