文件复制在项目开发中经常需要使用的,但是go语言非常人性化的给我们封装了copy的方法,让我们能够非常轻松的使用它,下面请看具体的案例
package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

//文件复制
func main(){
	//定义原文件名称和新文件名称
	srcPath := "files/copy2/src.avi"
	dstPath := "files/copy2/dst.avi"

	//打开文件
	srcFile,err := os.OpenFile(srcPath,os.O_RDONLY,0666)
	if err != nil{
		fmt.Println(err)
	}
	dstFile,err := os.OpenFile(dstPath,os.O_WRONLY|os.O_CREATE|os.O_TRUNC,0666)
	if err != nil{
		fmt.Println(err)
	}
	//关闭文件句柄
	defer srcFile.Close()
	defer dstFile.Close()

	//将文件写入缓冲区
	srcBuf := bufio.NewReader(srcFile)
	dstBuf := bufio.NewWriter(dstFile)

	//调用系统复制方法
	n,err := io.Copy(dstBuf,srcBuf)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(n)
	
	//落盘
	err = dstBuf.Flush()
	if err != nil {
		fmt.Print(err)
	}
}