Day21-Go档案处理

前言

Go 语言中的有关档案操作的工具,不可不提到标准函式库里边的io/ioutil 和 os package,我们将讲解此套件的一些函式,他们的用法及功能。

io/ioutil

ReadDir

这个函式很显然,是读取该档案夹里头的档案:

package main
 
import (
   "fmt"
   "io/ioutil"
   "log"
)
 
func main() {
   datas, err := ioutil.ReadDir(".")
   if err != nil {
       fmt.Println(err)
   }
 
   for _, file := range datas {
       fmt.Println(datas.Name())
   }
}

可以执行看看,会印出该档案夹,所有档案及资料夹。

ReadFile

ReadFile这个函式非常容易使用,我们直接看以下范例:

package main
 
import (
   "fmt"
   "io/ioutil"
)
 
func main() {
 
   fileName := "/dir/filename"
 
   // 读取档案
   data, err := ioutil.ReadFile(fileName)
   if err != nil {
       panic(err)
   }
 
   fmt.Println(string(data))
}

上述程序码,先读取名字为 filename 的文件,并返回文件中的内容。这里可以放多种档案,例如 go 档、csv 档或 txt 文字档等等。

os

如果想要开启档案後,做一些写入的操作,可以使用 os 套件,它允许我们先开启一个档案,然後再执行一些对档案的操作,如下列程序码:

package main
 
import (
   "fmt"
   "os"
)
 
func main() {
   // 读取档案,若档案不存在,则创建它
   f, err := os.OpenFile("log.csv", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
   if err != nil {
       fmt.Println(err)
   }
   if _, err := f.Write([]byte("appended some log\n")); err != nil {
       f.Close()
       fmt.Println(err)
   }
   if err := f.Close(); err != nil {
       fmt.Println(err)
   }
}

上述程序码,我们开启一个 csv 档,并执行一个写入的动作。

结语

今天介绍 Go 语言的档案处理,带给大家两个比较常使用的套件,希望对读者们有所帮助,感谢今天的阅读!


<<:  # Day14--解决暧昧问题延伸出来的那些事

>>:  AI ninja project [day 29] Dialogflow--聊天客服机器人

[Day17] Cloud Run

Cloud Run 是这次要介绍的最後一种部属服务方式。它是一种基於 Container 的 Ser...

Day23 切版笔记- 人员介绍卡片

运用到的观念 border搭配伪元素制作出三角形区块 绝对定位&相对定位 用:hover ...

Day2.程序运行的基本概念(预处理、编译、组译、链结)

平常我们很少关注编译和链结的过程,因为开发环境都集成开发的环境,比如Visual Studio、Ec...

JavaScript Day03 - 变数(2)

变数(variable)-Number Day05 - 变数(02):说明变数的计算与跟字串搭配的结...