久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Go 語言的文件操作

本文主要介紹 Go 語言中對文件系統(tǒng)的操作,Go 語言內置庫中提供了豐富的文件操作函數(shù),所以本文主要介紹使用Go 語言中的內置包——“os” 來實現(xiàn)文件操作。

 

1. 文件創(chuàng)建/打開

若你想創(chuàng)建/打開一個文件,則可以使用

代碼塊
  • 1? func OpenFile(name string, flag int, perm uint32) (file *File, err Error)

參數(shù)解釋:

  • name:就是文件名,若文件不在執(zhí)行程序目錄下,則可以使用文件的相對路徑或者絕對路徑。
  • flag:是文件打開模式,其支持模式共有(O_RDONLY|O_WRONLY|O_RDWR三個中必須要選一個):
    • O_RDONLY:以只讀方式打開文件;
    • O_WRONLY:以只寫方式打開文件;
    • O_RDWR:以讀寫方式打開文件;
    • O_APPEND:寫入時將數(shù)據(jù)追加到文件;
    • O_CREATE:如果不存在新文件,則創(chuàng)建一個新文件;
    • O_EXCL:與O_CREATE一起使用,文件不能存在;
    • O_SYNC:為同步I/O打開;
    • O_TRUNC:打開時截斷常規(guī)可寫文件;
  • perm:文件權限,一般最高為0777。

代碼示例

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "os"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? f, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
  • 10? ? ? ? if err != nil {
  • 11? ? ? ? ? ? ? ? panic(err)
  • 12? ? ? ? }
  • 13? ? ? ? fmt.Println(f.Name())
  • 14? }
  • 第 9 行:以讀寫的方式打開一個名為a.txt的文件,若文件不存在則創(chuàng)建這個文件,文件權限為0777;
  • 第 13 行:打印這個文件名;

執(zhí)行結果:

圖片描述

 

2. 文件讀取

文件打開之后,就可以從得到的文件對象中讀取文件內容。我們在 a.txt 文件中輸入?file test?字符串,來驗證讀取結果。

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "os"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? f, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
  • 10? ? ? ? if err != nil {
  • 11? ? ? ? ? ? ? ? panic(err)
  • 12? ? ? ??}
  • 13? ? ? ? b := make([]byte, 10) //最大讀取字符數(shù)量
  • 14? ? ? ? i, err := f.Read(b)
  • 15? ? ? ? if err != nil {
  • 16? ? ? ? ? ? ? ? panic(err)
  • 17? ? ? ? }
  • 18? ? ? ? fmt.Println(i) //輸出讀取的字符串的個數(shù)
  • 19? ? ? ? fmt.Println(string(b)) //輸出讀取到的字符串
  • 20? }

執(zhí)行結果:

圖片描述

 

3. 文件寫入

文件寫入有兩種模式,追加模式和覆寫模式。如果在打開文件的時候加上了?O_APPEND 模式,就是追加,如果不加就是覆寫。

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "os"
  • 5? )
  • 6
  • 7? func main() {
  • 8? ? ? ? ? f1, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
  • 9? ? ? ? ? if err != nil {
  • 10? ? ? ? ? ? ? ? ? panic(err)
  • 11? ? ? ? }
  • 12? ? ? ? f1.WriteString("覆寫字符")
  • 13? ? ? ? f1.Close()
  • 14
  • 15? ? ? ? f2, err := os.OpenFile("b.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777)//追加模式打開文件
  • 16? ? ? ? if err != nil {
  • 17? ? ? ? ? ? ? ? ? panic(err)
  • 18? ? ? ? }
  • 19? ? ? ? f2.WriteString("追加字符")
  • 20? }

反復執(zhí)行幾遍上述代碼,然后打開兩個文件,文件內容如下:

覆寫的文件中只有"覆寫字符"這四個字,因為其寫入被不斷覆寫了。

圖片描述

追加的文件中有很多"追加字符",因為其寫入是不斷的被追加到文件末尾的。

圖片描述

 

4. 小結

本文主要介紹了 Go 語言中自帶的 os 包的文件操作,需要注意的是文件的打開中若不確定文件是否存在,就可以加上 O_CREATE。改寫文件若是需要追加到文件末尾,記得在打開文件的時候要加上 O_APPEND。

上一節(jié)

文章來源于網絡,侵刪!

相關新聞

歷經多年發(fā)展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構!

    1. 主站蜘蛛池模板: 江永县| 平武县| 增城市| 曲松县| 松滋市| 蒙山县| 宜宾县| 新干县| 游戏| 高阳县| 广安市| 永泰县| 绥德县| 镇江市| 岐山县| 隆尧县| 绥化市| 苍山县| 长葛市| 邵阳市| 天峨县| 阿拉尔市| 杭锦旗| 林州市| 从化市| 小金县| 洪湖市| 庆安县| 丹凤县| 通山县| 冷水江市| 广元市| 洪泽县| 镇康县| 锦州市| 广德县| 噶尔县| 斗六市| 于田县| 苏尼特左旗| 兴和县|