最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GO語言文件的創(chuàng)建與打開實(shí)例分析

 更新時間:2014年12月03日 15:34:34   投稿:shichen2014  
這篇文章主要介紹了GO語言文件的創(chuàng)建與打開的具體用法,實(shí)例分析了GO語言文件創(chuàng)建與打開操作中所涉及的函數(shù)具體用法,具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

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

復(fù)制代碼 代碼如下:
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)
這個復(fù)雜點(diǎn),需要提供文件路徑、打開模式、文件權(quán)限。

打開標(biāo)記:

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

如果你需要設(shè)置多個打開標(biāo)記和unix權(quán)限位,需要使用位操作符"|",示例代碼如下:

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

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

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

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

四、任何文件的打開操作,請記得及時釋放
復(fù)制代碼 代碼如下:
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 函數(shù),使用給出的Unix文件描述符和名稱創(chuàng)建一個文件。參考:
復(fù)制代碼 代碼如下:
Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin")
Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout")
Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr")

希望本文所述對大家的GO語言程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 五步讓你成為GO 語言高手

    五步讓你成為GO 語言高手

    本文給大家介紹的這里是GO程序員的五個進(jìn)化階段,從最開始的菜逼到最終的布道者,附上各種示例,一步步走向大神之路,推薦給小伙伴們,有需要的朋友可以參考下
    2015-03-03
  • 深入探索Golang中的SM4加密解密算法

    深入探索Golang中的SM4加密解密算法

    SM4加密算法在安全性、高效性、簡單性、標(biāo)準(zhǔn)化和廣泛支持等方面具有優(yōu)勢,適用于各種數(shù)據(jù)保護(hù)和加密應(yīng)用場景,這篇文章就來和大家探索一下Golang中的SM4加密解密算法吧
    2023-06-06
  • golang頻率限制 rate詳解

    golang頻率限制 rate詳解

    這篇文章主要介紹了golang頻率限制 rate詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • go語言獲取系統(tǒng)盤符的方法

    go語言獲取系統(tǒng)盤符的方法

    這篇文章主要介紹了go語言獲取系統(tǒng)盤符的方法,涉及Go語言調(diào)用winapi獲取系統(tǒng)硬件信息的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 提高golang源碼閱讀效率的六個高級技巧

    提高golang源碼閱讀效率的六個高級技巧

    隨著業(yè)務(wù)的發(fā)展,自己對代碼的審美的改變,我們不斷的迭代這些代碼,代碼量可以說是與日俱增,代碼的某些結(jié)構(gòu)也會發(fā)生大大小的改變,這些都要求我們在閱讀代碼的時候,需要更快的效率和技巧
    2024-01-01
  • Go設(shè)計(jì)模式之生成器模式詳細(xì)講解

    Go設(shè)計(jì)模式之生成器模式詳細(xì)講解

    生成器模式將一個復(fù)雜對象的構(gòu)建和它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。生成器模式的主要功能是構(gòu)建復(fù)雜的產(chǎn)品,而且是細(xì)化地、分步驟地構(gòu)建產(chǎn)品,也就是說生成器模式重在一步一步解決構(gòu)建復(fù)雜對象的問題
    2023-01-01
  • Go語言中轉(zhuǎn)換JSON數(shù)據(jù)簡單例子

    Go語言中轉(zhuǎn)換JSON數(shù)據(jù)簡單例子

    這篇文章主要介紹了Go語言中轉(zhuǎn)換JSON數(shù)據(jù)簡單例子,本文先定義了一個結(jié)構(gòu)體,然后把JSON綁定到結(jié)構(gòu)體上實(shí)現(xiàn)讀取,需要的朋友可以參考下
    2014-10-10
  • go 判斷兩個 slice/struct/map 是否相等的實(shí)例

    go 判斷兩個 slice/struct/map 是否相等的實(shí)例

    這篇文章主要介紹了go 判斷兩個 slice/struct/map 是否相等的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go 中燒腦的接口及空接口

    Go 中燒腦的接口及空接口

    在Go語言的實(shí)際編程中,幾乎所有的數(shù)據(jù)結(jié)構(gòu)都圍繞接口展開,接口是Go語言中所有數(shù)據(jù)結(jié)構(gòu)的核心,這篇文章主要介紹了Go 中燒腦的接口,需要的朋友可以參考下
    2024-02-02
  • Go語言七篇入門教程一簡介初識

    Go語言七篇入門教程一簡介初識

    本篇是Go語言七篇入門系列第一篇Go語言初識及簡單介紹,從現(xiàn)在開始一起打開Go語言的學(xué)習(xí)大門吧,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11

最新評論

无极县| 太原市| 获嘉县| 绥化市| 柳河县| 汾西县| 黑河市| 永丰县| 乐昌市| 漠河县| 永年县| 深水埗区| 玉溪市| 苍溪县| 婺源县| 石楼县| 托克逊县| 临沧市| 太和县| 文化| 吴忠市| 剑阁县| 江西省| 乌什县| 新宁县| 黔南| 盐边县| 临泉县| 修文县| 农安县| 保山市| 区。| 兰考县| 九龙县| 游戏| 高邮市| 安阳县| 长宁县| 华阴市| 柳林县| 洮南市|