go语言之进阶篇拷贝文件案例
1、文件案例:拷贝文件
示例:
package main
import (
"fmt"
"io"
"os"
)
func main() {
list := os.Args //获取命令行参数
if len(list) != 3 {
fmt.Println("usage: xxx srcFile dstFile")
return
}
srcFileName = list[1]
drcFileName = list[1]
if srcFileName == drcFileName {
fmt.Println("源文件和目的文件名字不能相同")
return
}
//只读方式打开源文件
sF, err1 := os.Open(srcFileName)
if err1 != nil {
fmt.Println("err1 = ", err1)
return
}
//新建目的文件
dF, err2 := os.Create(srcFileName)
if err2 != nil {
fmt.Println("err2 = ", err2)
return
}
//操作完毕,需要关闭文件
defer sF.Close()
defer dF.Close()
//核心处理,从源文件读取内容,往目的文件写,读多少写多少
buf := make([]byte 4*1024) //4k大小临时缓冲区
for {
n, err := sF.Read(but) //从源文件读取内容
if err != nil {
if err == io.EOF //文件读取完毕
break
}
fmt.Println("err = ", err)
}
//往目的文件写,读多少写多少
dF.Write(buf[:n])
}
执行结果:
#在cmd中运行: D:\GoFiles\src\hello_01>go run mai1.go 2.txt 1.txt err = EOF
拷贝效果如下:


浙公网安备 33010602011771号