zoukankan      html  css  js  c++  java
  • 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]) //全部写进去

    }
    }
    每天的价值就是不停息的前进!!!
  • 相关阅读:
    用户数据报协议---UDP
    斐波那契数列
    从尾到头打印链表
    Mybatis三种查询方式
    Mybatis配置
    字典的用法
    遍历列表、切片、定义元组
    与列表相关知识
    python一些方法总结
    计算机的容量
  • 原文地址:https://www.cnblogs.com/zhaopp/p/11626141.html
Copyright © 2011-2022 走看看