A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我知道append应该是追加,write应该是覆盖。
但这个例子中
FileWriter fWriter = new FileWriter("e:\\aa.txt");
               
                BufferedWriter bwWriter=new BufferedWriter(fWriter);
               
               
                bwWriter.append("abc");//这里写write效果一样啊



有知道详细的吗?谢谢诸位

5 个回复

倒序浏览
本帖最后由 孤守星空 于 2014-9-5 17:42 编辑

以 out.append(c) 的形式调用此方法,行为与以下调用完全相同: out.write(c)
void
write(int c) 写入单个字符。

Writer
append(char)append(char c)
          将指定字符添加到此 writer。

可能这个就是区别
回复 使用道具 举报
擦,复制出来这么牛·····一个货带返回类型,write没有
回复 使用道具 举报
孤守星空 发表于 2014-9-5 17:42
擦,复制出来这么牛·····一个货带返回类型,write没有

就返回类型的区别是吧,我还以为是:append在文件已经存在情况下,再执行时继续追加到后面呢,结果发现不是
回复 使用道具 举报
append方法源码
  1.     public Writer append(CharSequence csq) throws IOException {
  2.         if (csq == null)
  3.             write("null");
  4.         else
  5.             write(csq.toString());
  6.             return this;
  7.     }
复制代码


writer方法源码
  1.     public void write(String str) throws IOException {
  2.         write(str, 0, str.length());
  3.     }
复制代码
回复 使用道具 举报
CharSequence是个接口,String和StringBuilder都是它的subtype,而Sting对象是一旦建立,其内容就不可改变。 StringBuilder对象的内容却是可以改变的。
append里既可以传String,又可以传StringBuilder,会灵活一些。

另外就是源码里的当csq值为null时的区别了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马