加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Go语言复制文件

发布时间:2020-12-16 19:37:18 所属栏目:大数据 来源:网络整理
导读:需要使用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

需要使用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)
}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读