go檔案操作

2021-10-05 17:53:31 字數 2446 閱讀 9387

os.open()函式能夠開啟乙個檔案,返回乙個開啟的檔案物件和乙個err。對得到的檔案物件呼叫close()方法能夠關閉檔案

為了防止檔案忘記關閉,我們通常使用defer關閉檔案

是向作業系統要了乙個檔案io,如果程式沒有顯示的關閉檔案,就不會釋放這個檔案io,造成檔案不安全

func main() 

// 關閉檔案

file.close()

}

開啟的檔案物件支援read方法,能夠讀取檔案中的內容

它接收乙個位元組切片,返回讀取的位元組數和可能的具體錯誤,讀到檔案末尾時會返回0io.eof(end of file)

//將檔案中的內容讀取到tmp中,

var tmp = make(byte, 128)

n, err := file.read(tmp)

fmt.printf("讀取了%d位元組資料\n", n)

fmt.println(string(tmp[:n]))

var content byte

var tmp = make(byte, 128)

for

if err != nil

}fmt.println(string(content))

bufio是在file的基礎上封裝了一層api,支援更多的功能。用newreader建立乙個reader出來,可以指定按多少個位元組來讀,也可以一行一行的讀

是帶有緩衝區的,先從磁碟將內容讀到緩衝區,然後再讀到**裡去,寫入也是一樣,將**要寫入的文字寫到緩衝區,再寫到磁碟上面

reader := bufio.newreader(file)

for

fmt.println("檔案讀完了")

break

} if err != nil

fmt.print(line)

}

還有更簡便的方式,封裝的更完善的方式

io/ioutil包的readfile方法能夠讀取完整的檔案,只需要將檔名作為引數傳入,返回的是檔案內容和錯誤

要注意的就是檔案不能太大了,會撐爆記憶體

func main() 

fmt.println(string(content))

}

想精確的設定每次讀取的數量,可以用原始的read,如果想快速的讀取整個檔案,就用ioutil,如果寫入的時候想加緩衝區,使寫入的更快一點,可以用bufio,因為他先把要寫入的內容寫到緩衝區裡,等到緩衝區到達一定的閾值後,才會呼叫作業系統檔案io的介面,把檔案寫入到磁碟裡去,減少了和作業系統頻繁的io操作過程,所以會提高效率

os.openfile()函式能夠以指定模式開啟檔案,從而實現檔案寫入相關功能

func openfile(name string, flag int, perm filemode) (*file, error)
name:要開啟的檔名flag:開啟檔案的模式。模式有以下幾種:

os.o_wronly只寫

os.o_create建立檔案

os.o_rdonly唯讀

os.o_rdwr讀寫

os.o_trunc清空

追加perm:檔案許可權,乙個八進位制數。r(讀)04,w(寫)02,x(執行)01

func main() 

defer file.close()

str := "hello 沙河"

file.write(byte(str)) //寫入位元組切片資料

file.writestring("hello 小王子") //直接寫入字串資料

}

要注意的是要進行flush操作,把緩衝區的內容真正的寫入到磁碟裡去

func main() 

defer file.close()

writer := bufio.newwriter(file)

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

writer.flush() //將快取中的內容寫入檔案

}

func main() 

}

os.stat()返回檔案資訊,能夠判斷檔案是否存在

func stat(name string) (fileinfo, error)

go檔案操作

go語言支援的檔案操作很多 1 傳統的檔案操作 匯入檔案操作需要的包 import os f os.open filepath f.read byte f.close 這裡寫 片openfile,err os.open test.go 正確開啟檔案返回err nil 這裡如果檔案開啟異常,則丟擲錯誤...

Go 35 Go 檔案操作

基本介紹 檔案在程式中是以流的形式來操作的 流 資料在資料來源 檔案 和程式 記憶體 之間經歷的路徑 輸入流 讀檔案 資料從資料來源 檔案 到程式 記憶體 的路徑 輸出流 寫檔案 資料從程式 記憶體 到資料來源 檔案 的路徑 主要是os包裡的file的結構體來對檔案進行操作 file代表乙個開啟的檔...

GO檔案操作詳解

package main 1 匯入 os 包,建立,讀,寫檔案的函式都在該包 import fmt os func main 3 寫入檔案操作 count,err1 fp.writestring 我去買些橘子,你就在此地,不要隨意走動 if err1 nil else 4 關閉檔案,如果開啟檔案不關...