package main
import(
"fmt"
"os"
"io"
)
func main(){
//1获取 命令行参数 执行方式 >go build 24_拷贝文件.go >24_拷贝文件.exe demo.txt dem2o.txt
list:=os.Args
if len(list)!=3{
fmt.Println("use xxx srcFile,dstFile")
return
}
srcFileName:=list[1]
dstFileName:=list[2]
if srcFileName==dstFileName{
fmt.Println("源文件和目标文件不能相同!!!")
return
}
//2打开文件
sf,err:=os.Open(srcFileName)
if err!=nil{
fmt.Println(err)
return
}
//3新建新文件
df,err2:=os.Create(dstFileName)
if err2!=nil{
fmt.Println(err2)
return
}
//4操作完毕,关闭文件
defer sf.Close()
defer df.Close()
//5核心处理 从源文件读取内容写入目标文件;读多少写多少
buf:=make([]byte,4*1024)
for{
n,err:=sf.Read(buf)
if(err!=nil){
if err==io.EOF{
break
}
fmt.Println(err)
return
}
n,err2:=df.Write(buf[:n])
if(err2!=nil){
if err==io.EOF{
break
}
fmt.Println(err2)
return
}
}
}
4.23 go拷贝文件
猜你喜欢
转载自blog.csdn.net/h4241778/article/details/105348003
今日推荐
周排行