文件复制在项目开发中经常需要使用的,但是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)
}
}