当前位置:网站首页>Go three ways to copy files
Go three ways to copy files
2022-04-23 19:21:00 【Handsome that handsome】
Method 1 :io Under bag Read() and Write() Method realization
We can go through io Under bag Read() and Write() Method , Reading while writing , You can copy files . This method is to read the file by block , The size of the block will also affect the performance of the program
The function of this function : Copy files , The return value is the total number of copies ( byte ), error
func copyFile1(srcFile,destFile string)(int,error){
file1,err:=os.Open(srcFile)
if err != nil{
return 0,err
}
file2,err:=os.OpenFile(destFile,os.O_WRONLY|os.O_CREATE,os.ModePerm)
if err !=nil{
return 0,err
}
defer file1.Close()
defer file2.Close()
// Copy the data
bs := make([]byte,1024,1024)
n :=-1// Amount of data read
total := 0
for {
n,err = file1.Read(bs)
if err == io.EOF || n == 0{
fmt.Println(" Copy complete ..")
break
}else if err !=nil{
fmt.Println(" Wrong report ...")
return total,err
}
total += n
file2.Write(bs[:n])
}
return total,nil
}
Method 2 :io Under bag Copy() Method realization
We can also use io Under bag Copy() Method .
The sample code is as follows :
func copyFile2(srcFile, destFile string)(int64,error){
file1,err:=os.Open(srcFile)
if err != nil{
return 0,err
}
file2,err:=os.OpenFile(destFile,os.O_WRONLY|os.O_CREATE,os.ModePerm)
if err !=nil{
return 0,err
}
defer file1.Close()
defer file2.Close()
return io.Copy(file2,file1)
}
Method 3. ioutil Under bag ReadFile() and WriteFile() Method realization
func CopyFile2(srcFile, destFile string) (int, error) {
// Read all data in the target file at one time
content, err := ioutil.ReadFile(srcFile)
if err != nil {
fmt.Println("err:", err)
return 0, err
}
// Write the data in the target file to the specified file
err = ioutil.WriteFile(destFile, content, os.ModePerm)
if err != nil {
fmt.Println("err:", err)
return 0, err
}
return len(content),nil
}
版权声明
本文为[Handsome that handsome]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210557451159.html
边栏推荐
- Intuitive understanding of the essence of two-dimensional rotation
- 命令-sudo
- SSDB foundation 3
- ArcMap publishing slicing service
- The flyer realizes page Jump through routing routes
- Tencent cloud GPU best practices - remote development training using jupyter pycharm
- Customize the non slidable viewpage and how to use it
- Convert string to JSON
- Problems caused by flutter initialroute and home
- An idea of rendering pipeline based on FBO
猜你喜欢
Using oes texture + glsurfaceview + JNI to realize player picture processing based on OpenGL es
Reflection on the performance of some OpenGL operations in the past
[报告] Microsoft :Application of deep learning methods in speech enhancement
Prefer composition to inheritance
Using Visual Studio code to develop Arduino
5 minutes to achieve wechat cloud applet payment function (including source code)
ArcMap connecting ArcGIS Server
2021-2022-2 ACM training team weekly Programming Competition (8) problem solution
The most detailed network counting experiment in history (2) -- rip experiment of layer 3 switch
JVM的类加载过程
随机推荐
网络协议之:sctp流控制传输协议
Installation, use and problem summary of binlog2sql tool
Prefer composition to inheritance
Some speculation about the decline of adults' language learning ability
为何PostgreSQL即将超越SQL Server?
Raspberry pie 18b20 temperature
Android Development: the client obtains the latest value in the database in real time and displays it on the interface
Class loading process of JVM
Some records used by VS2010
Transaction processing of SQL Server database
js获取本机ip地址
Web Security
8266 obtain 18b20 temperature
JS to get the local IP address
White screen processing method of fulter startup page
2021-2022-2 ACM training team weekly Programming Competition (8) problem solution
Openlayers 5.0 discrete aggregation points
Pit encountered using camera x_ When onpause, the camera is not released, resulting in a black screen when it comes back
Keysight has chosen what equipment to buy for you
Wechat applet part of the mobile phone Preview PDF did not respond