Go语言复制文件

需要使用io包的Copy方法

package main

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

//自己编写一个函数,接收两个文件路径 srcFileName dstFileName
func CopyFile(dstFileName string,srcFileName string) (written int64,err error) {

srcFile,err := os.Open(srcFileName)

if err != nil {
    fmt.Printf("open file err = %v\n",err)
    return
}

defer srcFile.Close()

//打开dstFileName

dstFile,err := os.OpenFile(dstFileName,os.O_WRONLY | os.O_CREATE,0755)
if err != nil {
    fmt.Printf("open file err = %v\n",err)
    return
}

defer dstFile.Close()

return io.Copy(dstFile,srcFile)

}

func main() {

result,err := CopyFile("./src/main/dst.png","./src/main/file.png")

if err == nil {
    fmt.Println("拷贝成功!,拷贝的字节数为: ",result)
}

}

还可以使用下面的方法

package main

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

//自己编写一个函数,接收两个文件路径 srcFileName dstFileName

func CopyFile(dstFileName string,err)
return
}

defer srcFile.Close()

//通过srcFile,获取到Reader
reader := bufio.NewReader(srcFile)

//打开dstFileName
dstFile,0666)
if err != nil {
    fmt.Printf("open file err = %v\n",err)
    return
}

writer := bufio.NewWriter(dstFile)
defer func() {
    writer.Flush() //把缓冲区的内容写入到文件
    dstFile.Close()

}()

return io.Copy(writer,reader)

}

func main() {

result,"./src/main/file.png")

if err == nil {
    fmt.Println("拷贝成功!拷贝的字节大写为: ",result)
}

}

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...