package main
import (
"fmt"
"io"
"os"
)
/*
拷贝文件
读
写入新文件
*/
func CopyFile(src, dest string) error {
srcFile, err := os.Open(src)
if err != nil {
return err
}
defer srcFile.Close()
for {
buffer := make([]byte, 1024)
n, err := srcFile.Read(buffer)
if err == io.EOF {
return err
}
destFile, err := os.Create(dest)
if err != nil {
return err
}
defer destFile.Close()
n, err = destFile.Write(buffer[:n])
if err != nil {
return err
}
_, err = io.Copy(destFile, srcFile) //通过io.Copy实现
buffer = make([]byte, 1024*1204) //1M
_, err = io.CopyBuffer(destFile, srcFile, buffer) //
_, err = io.CopyN(destFile, srcFile, 1) //只包括前n个
return err
}
}
func main() {
fmt.Println(CopyFile("test.go", "test1.go"))
}