在Java/Python中, 文件打开后,默认是覆写,但golang默认是不覆盖的

最初以为这些代码会”无则创建,有则覆盖”

f, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE, os.ModePerm)

这样得到f, 如果不执行

f.Truncate(0)

就f.Write就只是覆盖当前位置的内容,并不会截断文件.

事实上需要这样写

f, err := os.OpenFile(dst, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, os.ModePerm)


blog comments powered by Disqus

Published

2013-01-16

Categories


Tags

Fork me on GitHub