demo.go(文件拷贝):
package main
import (
"fmt"
"io"
"os"
)
func main() {
// 打开文件
fp1, err1 := os.OpenFile("./demo.txt", os.O_RDONLY, 6)
fp2, err2 := os.Create("./demo2.txt")
if err1 != nil || err2 != nil {
fmt.Println("操作文件失败")
return
}
// 关闭文件
defer fp1.Close()
defer fp2.Close()
// 拷贝文件
buf := make([]byte, 1024*1024*8) // 8MB
for {
n, err := fp1.Read(buf)
if err == io.EOF {
break
}
fp2.Write(buf[:n])
}
}