zoukankan      html  css  js  c++  java
  • 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:GoFilessrchello_01>go run mai1.go 2.txt 1.txt
    
    err =  EOF

    拷贝效果如下:

  • 相关阅读:
    java基础——DecimalFormat
    剑指——重建二叉树
    error error: illegal character: 'u3000'
    Android: Unhandled exception java.net.malformedurlexception 异常笔记
    Android获取系统时间
    java基础——hashCode笔记
    golang 红黑树
    golang 实现跳表skiplist
    快排
    堆排序
  • 原文地址:https://www.cnblogs.com/nulige/p/10271442.html
Copyright © 2011-2022 走看看