Golang笔记|实现单文件复制

54 阅读1分钟

实现思路:

  1. 只读方式打开需要复制的源文件。
  2. 以读写方式打开要复制的目标文件,没有则创建。
  3. 使用golang自带的io包进行复制。

准备工作

  1. 创建main.go
  2. 在main.go文件同目录下创建目标文件source.txt

image.png

具体代码

    func main() {
       // 只读方式打开同目录下的源文件 source.txt 
        source, err := os.Open("source.txt")
        if err != nil {
          fmt.Println("打开源文件失败,失败原因:", err)
          return
        }
        defer source.Close()

        // 读写并且可创建方式打开目标文件 0644:即用户具有读写权限,组用户和其它用户具有只读权限
        target, err := os.OpenFile("target.txt", os.O_WRONLY|os.O_CREATE, 0644)
        if err != nil {
          fmt.Println("打开目标文件失败,失败原因:", err)
          return
        }
        defer target.Close()

        // 调用io.Copy()拷贝内容
        _, err = io.Copy(target, source)
        if err != nil {
          fmt.Println("复制文件失败, 失败原因:", err)
          return
        }
        fmt.Println("复制完成!")
    }

运行代码

image.png

image.png