婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > GO語言文件的創建與打開實例分析

GO語言文件的創建與打開實例分析

熱門標簽:外呼系統如何接收服務密碼 工商信用卡外呼系統教程 滁州自建外呼系統 客服級電銷機器人 海外照相館地圖標注入駐 旅游廁所如何電子地圖標注 外呼系統多少錢一年 經常接到推銷電話機器人的電話 智能營銷軟件

本文實例分析了GO語言文件的創建與打開用法。分享給大家供大家參考。具體分析如下:

文件操作是個很重要的話題,使用也非常頻繁,熟悉如何操作文件是必不可少的。Golang 對文件的支持是在 os package 里,具體操作都封裝在 type File struct {} 結構體中。

一、func Open(name string) (file *File, err error)
再簡單不過了,給一個路徑給它,返回文件描述符,如果出現錯誤就會返回一個 *PathError。
這是一個只讀打開模式,實際上就是 os.OpenFile() 的快捷操作,它的原型如下:

復制代碼 代碼如下:
func Open(name string) (file *File, err error) {
    return OpenFile(name, O_RDONLY, 0)
}

二、func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
這個復雜點,需要提供文件路徑、打開模式、文件權限。

打開標記:

O_RDONLY:只讀模式(read-only)
O_WRONLY:只寫模式(write-only)
O_RDWR:讀寫模式(read-write)
O_APPEND:追加模式(append)
O_CREATE:文件不存在就創建(create a new file if none exists.)
O_EXCL:與 O_CREATE 一起用,構成一個新建文件的功能,它要求文件必須不存在(used with O_CREATE, file must not exist)
O_SYNC:同步方式打開,即不使用緩存,直接寫入硬盤
O_TRUNC:打開并清空文件
文件權限(unix權限位):只有在創建文件時才需要,不需要創建文件可以設置為 0。os庫雖然提供常量,但是我一般直接寫數字,如0664。

如果你需要設置多個打開標記和unix權限位,需要使用位操作符"|",示例代碼如下:

復制代碼 代碼如下:
f, err := os.OpenFile("test.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm|os.ModeTemporary)
   if err != nil {
 panic(err)
}

如果文件存在就以讀寫模式打開,并追加寫入;如果文件不存在就創建,然后以讀寫模式打開。

三、func Create(name string) (file *File, err error)
實際上這也是 os.OpenFile() 的快捷操作。創建一個新文件并以讀寫方式打開,權限位"0666",如果文件存在則會清空。原型如下:

復制代碼 代碼如下:
func Create(name string) (file *File, err error) {
    return OpenFile(name, O_RDWR|O_CREATE|O_TRUNC, 0666)
}

四、任何文件的打開操作,請記得及時釋放
復制代碼 代碼如下:
func ReadFile(pth string) error{
 f, err := os.Open(pth)
    if err!=nil{
        return err
    }
 defer f.Close() //釋放資源,時刻不忘
    ...
}

os 模塊中還有一個 func NewFile(fd uintptr, name string) *File 函數,使用給出的Unix文件描述符和名稱創建一個文件。參考:
復制代碼 代碼如下:
Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin")
Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout")
Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr")

希望本文所述對大家的GO語言程序設計有所幫助。

您可能感興趣的文章:
  • 用go gin server來做文件上傳服務
  • Golang+Android基于HttpURLConnection實現的文件上傳功能示例
  • GO語言實現文件上傳代碼分享
  • golang并發下載多個文件的方法
  • Golang 使用http Client下載文件的實現方法
  • Go語言下載網絡圖片或文件的方法示例
  • GO語言常用的文件讀取方式
  • Go語言判斷指定文件是否存在的方法
  • 使用Go語言實現遠程傳輸文件
  • Go語言判斷文件或文件夾是否存在的方法
  • golang語言實現的文件上傳與文件下載功能示例

標簽:湘潭 楚雄 本溪 九江 深圳 運城 喀什 晉城

巨人網絡通訊聲明:本文標題《GO語言文件的創建與打開實例分析》,本文關鍵詞  語言,文件,的,創建,與,打開,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《GO語言文件的創建與打開實例分析》相關的同類信息!
  • 本頁收集關于GO語言文件的創建與打開實例分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 黄浦区| 铜陵市| 双辽市| 怀柔区| 洪洞县| 泰兴市| 沙湾县| 澜沧| 襄樊市| 响水县| 盖州市| 米易县| 青海省| 广河县| 万安县| 汉沽区| 若羌县| 沅江市| 大方县| 丁青县| 庆云县| 达拉特旗| 合山市| 阳东县| 柞水县| 云南省| 巴塘县| 拉萨市| 萍乡市| 墨脱县| 连南| 温泉县| 莲花县| 高邮市| 措美县| 深水埗区| 崇阳县| 北宁市| 清镇市| 陈巴尔虎旗| 南汇区|