bufioio.Copy(Writer, Reader)
func copyFile1(srcFileName, dstFileName string) (written int64, err error) {
srcfile, err := os.Open(srcFileName)
if err != nil {
log.Fatal(err)
}
// 获取Reader
reader := bufio.NewReader(srcfile)
defer srcfile.Close()
// 打开目标文件
dstfile, err := os.OpenFile(dstFileName, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
log.Fatal(err)
}
// 获取Writer
writer := bufio.NewWriter(dstfile)
defer dstfile.Close()
return io.Copy(writer, reader)
}
func main() {
_, err := copyFile1("/home/thepoy/Pictures/1.png", "/home/thepoy/Downloads/test.png")
if err != nil {
log.Fatal(err)
return
}
}
源文件和复制后的文件:
654K 6月 6 10:46 1.png
652K 6月 6 10:54 test.png
已解决
在io.Copy前调用一下writer.Flush()冲洗一下解决此问题。