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:\GoFiles\src\hello_01>go run mai1.go 2.txt 1.txt
- err = EOF
拷贝效果如下:
go语言之进阶篇拷贝文件案例的更多相关文章
- go语言之进阶篇接口转换
1.go语音之进阶篇 示例: package main import "fmt" type Humaner interface { //子集 sayhi() } type Pers ...
- Go语言之进阶篇文件传输
一.文件传输 1.文件传输原理 2.文件传输 示例: 发送方: send_file.go package main import ( "fmt" "io" &q ...
- go语言之进阶篇文件常用操作接口介绍和使用
一.文件常用操作接口介绍 1.创建文件 法1: 推荐用法 func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对 ...
- Javascript进阶篇——总结--DOM案例+选项卡效果
断断续续的把慕课的JavaScript基础和进阶看完了,期间不怎么应用有的都忘记了,接下来多开始写些效果,进行实际应用. 制作一个表格,显示班级的学生信息. 1. 鼠标移到不同行上时背景色改为色值为 ...
- Go语言之进阶篇操作redis
1.windows安装redis 软件包下载地址: https://github.com/MicrosoftArchive/redis/releases 1.1.安装--->下一步---> ...
- Go语言之进阶篇爬捧腹网
1.爬捧腹网 网页规律: https://www.pengfu.com/xiaohua_1.html 下一页 +1 https://www.pengfu.com/xiaohua_2.html 主页 ...
- Go语言之进阶篇爬百度贴吧并发版
1.爬百度贴吧并发版 示例: package main import ( "fmt" "net/http" "os" "strco ...
- Go语言之进阶篇服务器如何知道用户需要什么资源
1.服务器如何知道用户需要什么资源 示例: package main import ( "fmt" "net" ) func main() { //监听 lis ...
- Go语言之进阶篇Socket编程
一.Socket编程 1.什么是Socket Socket起源于Unix,而Unix基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭clo ...
随机推荐
- yaml.parser.ParserError
ERROR: yaml.parser.ParserError: while parsing a block mapping in "./docker-compose.yml", l ...
- android Service oncreate 在UI线程 何时用service,何时用thread
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 服务的生命周期 各个方法 都是在主线程中的. 这里的操作可以导致主线程阻塞. 这些方法, ...
- HDU 3802Ipad,IPhone
前两块可以看成是不是二次剩余,快速幂计算即可. 后半部分可以看成x1=a+b+2ab,x2=a+b-2ab为特征方程x^2-px-qx=0的两根 然后可以通过韦达定理求出p和q,因此递推式为A(n+2 ...
- [BZOJ3585]mex(莫队+分块)
显然可以离线主席树,这里用莫队+分块做.分块的一个重要思想是实现修改与查询时间复杂度的均衡,这里莫队和分块互相弥补. 考虑暴力的分块做法,首先显然大于n的数直接忽略,于是将值域分成sqrt(n)份,每 ...
- java集合之vector容器
学完ArrayList和LinkedList之后,我们接着学习Vector.第1部分 Vector介绍第2部分 Vector数据结构第3部分 Vector源码解析(基于JDK1.6.0_45)第4部分 ...
- Consul + fabio 实现自动服务发现、负载均衡 - DockOne.io
Consul + fabio 实现自动服务发现.负载均衡 - DockOne.io http://dockone.io/article/1567
- Java中的锁(转)
Java中的锁 锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂.因为锁(以及其它更高级的线程同步机制)是由synchronized同步 ...
- android应用程序签名(转)
概述 Android系统要求,所有的程序经过数字签名后才能安装.Android系统使用这个证书来识别应用程序的作者,并且建立程序间的信任关系.证书不是用于用户控制哪些程序可以安装.证书不需要授权中心来 ...
- linux socket talkclient talkserver示例
cleint: #define _GNU_SOURCE 1 #include <sys/types.h> #include <sys/socket.h> #include &l ...
- [转]LRU缓存实现(Java)
LRU Cache的LinkedHashMap实现 LRU Cache的链表+HashMap实现 LinkedHashMap的FIFO实现 调用示例 LRU是Least Recently Used 的 ...