码迷,mamicode.com
首页 > 其他好文 > 详细

66_文件的复制

时间:2019-10-06 00:24:20      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:UNC   return   ==   ack   关闭   缓冲区   lis   pre   新建   

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_文件的复制

标签:UNC   return   ==   ack   关闭   缓冲区   lis   pre   新建   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!