zoukankan      html  css  js  c++  java
  • [GO]二进制文件的拷贝

    writestring的方式只适用于字符串的写入,对于十进制文件的写入只要使用write就可以了

    package main
    
    import (
        "os"
        "fmt"
        "io"
    )
    
    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, serr := os.Open(srcFileName)
        if serr != nil{
            fmt.Println(" serr = ", serr)
            return
        }
        //新建目标文件
        dF, derr := os.Create(dstFileName)
        if serr != nil{
            fmt.Println(" derr = ", derr)
            return
        }
        //操作完成,关闭文件
        defer dF.Close()
        defer sF.Close()
    
        //核心处理,从源文件获取内容,往目的文件写,读多少写多少
        buf := make([]byte, 1024*4)//4k大小缓冲区
        for true {
            n, err := sF.Read(buf)
            if err != nil {
                if err == io.EOF{ //代表文件读取完成
                    break
                }
                fmt.Println("err = ", err)
            }
            //往目的文件写,读多少写多少
            dF.Write(buf[:n])
        }
    }

    然后使用命令进行exe文件的创建

    E:awesomeProject>go build 文件拷贝.go

    然后直接运行程序就可以了

    E:awesomeProject>文件拷贝.exe errors接口的使用.go  errors接口的使用copy.go

  • 相关阅读:
    询问js代码
    嵌套查询sql语句例子
    简单的添加更新语句 一条语句实现
    xp序列号
    字符串处理类代码
    上传图片类代码
    关于IE9中jquery ajax提交无法发送cookie的解决方案
    asp.net mvc3分页代码
    System.Timers.Timer在asp.net中的使用方法
    SQL2005连接远程连接配置
  • 原文地址:https://www.cnblogs.com/baylorqu/p/9669876.html
Copyright © 2011-2022 走看看