需要使用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 = %vn",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 = %vn",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 = %vn",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)
}
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|