首页 > 其他 > 详细

66_文件的复制

时间:2019-10-06 00:45:04      阅读:141      评论:0      收藏:0      [点我收藏+]
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] //元文件名字(文件应该在本文件夹下面)
dstFileName := list[2] //目的文件名字

if srcFileName == dstFileName {
fmt.Println("源文件和目的文件名字不能相同")
return
}
//只读方式打开源文件
sF, err1 := os.Open(srcFileName)
if err1 != nil {
fmt.Println("err1=", err1)
return
}
//新建目的文件
dF, err2 := os.Create(dstFileName)
if err2 != nil {
fmt.Println("err2=", err2)
return

}
//关闭文件
defer dF.Close()
defer sF.Close()

//核心:从源文件读多少,往目的文件写多少
buf := make([]byte, 4*1024) //4k大小缓冲区
for {
n, err := sF.Read(buf)
if err != nil {
if err == io.EOF {
break
}
fmt.Println("err=", err)
return
}
//往目的文件写,读多少,写多少
dF.Write(buf[:n]) //全部写进去

}
}

66_文件的复制

原文:https://www.cnblogs.com/zhaopp/p/11626141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!