66_文件的复制

Posted zhaopp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了66_文件的复制相关的知识,希望对你有一定的参考价值。

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_文件的复制的主要内容,如果未能解决你的问题,请参考以下文章

66.文件映射为内存进行操作

Docker,复制资源权限的奇怪问题

从 S3 复制镶木地板文件时出现 Vertica 性能问题

matlab 怎样批量删除text文件的指定行?

安装allure时遇到的坑:JAVA_HOME is set to an invalid directory: D:Javajdk1.8.0_66 Please set the JAVA_HOM(代

安装allure时遇到的坑:JAVA_HOME is set to an invalid directory: D:Javajdk1.8.0_66 Please set the JAVA_HOM(代