前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >33.Go文本文件处理-文件操作案例

33.Go文本文件处理-文件操作案例

作者头像
Devops海洋的渔夫
发布2022-01-17 10:25:34
2350
发布2022-01-17 10:25:34
举报
文章被收录于专栏:Devops专栏Devops专栏

33.Go文本文件处理-文件操作案例

前言

在前面的篇章中,我们直到了如何创建文件、打开文件、写入文件、读取文件,下面来一个综合的案例。

文件操作案例

编写一个函数:文件拷贝,将已有的文件复制一份,同时重新命名。

基本的思路:

(1) 让用户输入要拷贝的文件的名称(源文件)以及目的文件的名称

(2) 创建目的文件

(3) 打开源文件,并且读取该文件中的内容

(4) 将从源文件中读取的内容写到目的文件中。

完整代码如下:

代码语言:javascript
复制
package main

import (
   "fmt"
   "io"
   "os"
)

// 文件拷贝,将已有的文件复制一份,同时重新命名
func CopyFile(srcFile string, dstFile string) {
   //1.创建目标文件
   dst, err := os.Create(dstFile)
   if err != nil { // 如果有错误,打印错误,同时返回
      fmt.Println("err = ", err)
      return
   }

   //2.打开源文件,并且读取该文件中的内容
   src, err := os.Open(srcFile)
   if err != nil {
      fmt.Println("err1 = ", err)
      return
   }

   //读取文件全部内容
   buf := make([]byte, 1024*2)      // 2k大小
   n, err := src.Read(buf)          //n代表从文件读取内容的长度
   if err != nil && err != io.EOF { // 文件出错,同时没有到结尾
      fmt.Println("err = ", err)
      return
   }
   //保存内容
   content := string(buf[:n])

   //3.将从源文件中读取的内容写到目的文件中
   // 直接写入全部内容的方式
   n, err = dst.WriteString(content)
   // 打印写入数据的错误信息
   if err != nil {
      fmt.Println("写入数据的错误信息:", err)
   }
   fmt.Println("写入数据的长度:", n)
   
   //4.关闭文件
   defer dst.Close()
   defer src.Close()

}

func main() {
   var filePath = "a.txt"
   var dstPath = "b.txt"

   CopyFile(filePath, dstPath)
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 33.Go文本文件处理-文件操作案例
  • 前言
  • 文件操作案例
    • 基本的思路:
      • 完整代码如下:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档