Go語言檔案操作

2022-05-03 10:01:45 字數 1811 閱讀 1247

輸入流和輸出流

os.file 封裝所有檔案相關操作,file是乙個結構體

官方文件

開啟檔案使用的是os包下的open,openfile函式

func open(name string) (file *file, err error)
open開啟乙個檔案用於讀取。如果操作成功,返回的檔案物件的方法可用於讀取資料;對應的檔案描述符具有o_rdonly模式。如果出錯,錯誤底層型別是*patherror。

func openfile(name string, flag int, perm filemode) (file *file, err error)
openfile是乙個更一般性的檔案開啟函式,大多數呼叫者都應用open或create代替本函式。它會使用指定的選項(如o_rdonly等)、指定的模式(如0666等)開啟指定名稱的檔案。如果操作成功,返回的檔案物件可用於i/o。如果出錯,錯誤底層型別是*patherror。

import "os"

func openfiletest()

fmt.println("file: %v", file)

err = file.close()

if err != nil

}func openfiletest2()

fmt.println("file: %v", file)

err = file.close()

if err != nil

}

關閉檔案用close函式,一般會結合defer,在函式執行完畢後自動釋放檔案控制代碼

讀取檔案內容可以用bufio,ioutil兩個包

func filereadertest() 

defer file.close()

reader := bufio.newreader(file)

for

} fmt.println("read finish...")

}func ioutiltest()

fmt.println(string(content))

}

可以用bufio包下的write函式,也可以使用ioutil包下的write函式

func writefiletest3() 

defer file.close()

str := "abc! english \r\n"

writer := bufio.newwriter(file)

for i := 0; i < 5; i++

// bufio.writer 是快取寫入,所以需要flush才能真正寫入到檔案

writer.flush()

}func readandwritefiletest()

可以使用os.stat()函式返回單額錯誤值進行判斷

func exists(path string) (bool error)  

if os.isnotexist(err)

return false, err

}

缺少很多err的判斷

func copyfiletest()

Go語言檔案操作

檔案的開啟和關閉 os.open 函式能夠開啟乙個檔案,返回乙個 file和乙個err。對得到的檔案例項呼叫close 方法能夠關閉檔案。為了防止檔案忘記關閉,我們通常使用defer註冊檔案關閉語句。讀取檔案 file.read read方法定義如下 func f file read b byte ...

go語言 檔案操作

os.open 函式能夠開啟乙個檔案,返回乙個 file和乙個err。對得到的檔案例項呼叫close 方法能夠關閉檔案。package main import fmt os func main 關閉檔案 file.close 為了防止檔案忘記關閉,我們通常使用defer註冊檔案關閉語句。read方法...

Go語言檔案操作

寫程式離不了檔案操作,這裡總結下 go語言檔案操作。一 建立與開啟 建立檔案函式 func create name string file file,err error func newfile fd int,name string file 具體見官網 開啟檔案函式 func open name ...