GO語言檔案的建立與開啟例項分析

2022-09-24 23:39:11 字數 1813 閱讀 3220

檔案操作是個很重要的話題,使用也非常頻繁,熟悉如何操作檔案是必不可少的。golang 對檔案的支援是在 os package 裡,具體操作都封裝在 type file struct {} 結構體中。

一、func open(name string) (file *file, err error)

再簡單不過了,給乙個路徑給它,返回檔案描述符,如果出現錯誤就會返回乙個 *patherror。

這是乙個唯讀開啟模式,實際上就是 os.openfile() 的快捷操程式設計客棧作,它的原型如下:

複製** **如下:

func open(n string) (file *file, err error)

二、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

如果檔案存在就以讀寫模式開啟,並追加寫入;如果檔案不存在就建立,然後以讀寫模式開啟。

三、func create(name string) (file *file, err error)

實際上這也是 os.openfil 的快捷操作。建立乙個新檔案並以讀寫方式開啟,許可權位"0666",如果檔案存在則會清空。原型如下:

複製** **如下:

func create(name string) (file *file, err error)

四、任何檔案的開啟操作,請記得及時釋放

複製** **如下:

func readfile(pth string) error

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語言 檔案操作例項

package main import bufio fmt io ioutil os func main 以追加資料的形式寫入檔案 defer f.close f.writestring str 讀檔案func readfile filename string readbuf make byte,1...

檔案的建立,開啟與關閉

int chmod const char path,mode t mode mode 代表訪問許可權 int fchmod int fildes mode t mode 字元常量值 對應的八進位制數值 含義s irusr 00400 所有者可讀取 s iwusr 00200 所有者可寫入 s ixu...

linux下檔案的建立,開啟與關閉

1.open 函式 open 系統呼叫用來開啟或建立乙個檔案 函式原型為 include include include int open const char pathname,int flags int open const char pathname,int flags,mode t mode...