java 这个循环中调用FileOutputStream中的write方法为什么不会覆盖文件内容?

EGOIST_zrt 2020-02-26 10:21:35
源txt文件中的数据为helloworld,最后新生成的文件内容也是helloworld. 缓冲数组大小为2,那么每次循环只能向temp数组中存入两个字符,每次调用write方法也只能写入两个字节,为什么没有把之前写入的覆盖掉?这个ouput的构造函数不是会覆盖的吗??
...全文
557 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
EGOIST_zrt 2020-02-27
  • 打赏
  • 举报
回复
即覆盖目的文件的内容不是因为调用write()方法造成的,而是由于output=new FileOutputStream(dest);这条语句清空目的文件内容造成的
EGOIST_zrt 2020-02-27
  • 打赏
  • 举报
回复 3
问题已解决,查看write()方法源码后发现这个方法是追加写入而不是覆盖写入,在debug逐步运行时发现运行完output=new FileOutputStream(dest);后目标文件的内容会被清空(当文件存在时),然后再调用write()方法将缓冲数组中的数据追加到目的文件中

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧