Golang基礎之檔案操作

2022-07-05 06:48:11 字數 2959 閱讀 5040

目錄2、檔案寫入

在大多數語言中對於檔案操作是必不可少的乙個內容,那麼在go中os提供了檔案的基本操作,除此以外為了追求便捷以及效能之上,go 還在io/ioutil以及bufio提供一些其他函式供開發者使用

os.open開啟檔案後賦給file然後通過read的方法讀取並接收乙個buf byte 的引數型別,讀取到檔案末尾會返回0以及 io.eof,可以通過0或者io.eof進行判斷檔案是否讀取完畢。

package main

import (

"fmt"

"os"

)func main()

// 記得關閉檔案

defer fileobj.close()

// 使用read方法讀取檔案資料

//var tmp = make(byte,128) // 指定讀的長度

var tmp [128]byte

n,err := fileobj.read(tmp[:])

if err != nil

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

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

}

上面這種方式是一次性讀取128byte的檔案,如果需要將檔案都讀取完,就需要用到迴圈讀取

package main

import (

"fmt"

"os"

)func main()

defer fileobj.close()

// 使用read方法讀取檔案資料

var tmp [128]byte

for

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

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

if n < 128

}}

bufio 顧名思義就是帶 buffer 的 io

package main

import (

"bufio"

"fmt"

)func main()

defer fileobj.close()

// 建立乙個從檔案中讀內容的物件

reader := bufio.newreader(fileobj)

line,err := reader.readstring('\n') //注意是字元

if err == io.eof

if err != nil

fmt.print(line)

}

package main

import (

"bufio"

"fmt"

)func main()

defer fileobj.close()

// 建立乙個從檔案中讀內容的物件

reader := bufio.newreader(fileobj)

for

if err != nil

fmt.println(line)

}}

io/ioutil包的readfile方法能夠讀取完整的檔案,只需要將檔名作為引數傳入

package main

import (

"fmt"

"io/ioutil"

)func main()

fmt.println(string(ret))

}

os.openfile()函式能夠以指定模式開啟檔案,從而實現檔案寫入相關功能,它還提供了writestring和write兩種方法,具體使用哪種根據個人需求。如下

func openfile(name string, flag int, perm filemode) (*file, error)
其中:

1.name:要開啟的檔名

2.flag:開啟檔案的模式。模式有以下幾種:

模式描述

os.o_wronly

只寫os.o_create

建立檔案

os.o_rdonly

唯讀os.o_rdwr

讀寫os.o_trunc

清空追加

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

package main

import (

"fmt"

"os"

)func main()

defer file.close()

str := "hello world\n"

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

file.writestring(str) // 直接寫入字串資料

}

bufio能夠實現先將資料寫入到快取區,然後在從快取中的內容寫入到檔案中。

package main

import (

"bufio"

"fmt"

"os"

)func main()

defer file.close()

writer := bufio.newwriter(file)

str := "我的世界,由我做主\n"

writer.writestring(str) // 先將資料寫入到快取

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

}

package main

import (

"fmt"

"io/ioutil"

)func main()

}

golang 檔案操作

檔案開啟模式 const o rdonly int syscall.o rdonly 唯讀模式開啟檔案 o wronly int syscall.o wronly 只寫模式開啟檔案 o rdwr int syscall.o rdwr 讀寫模式開啟檔案 o create int syscall.o c...

go lang 讀寫檔案操作

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

Golang 檔案讀寫操作

package main import fmt io log os path filepath strconv func main strfile strdir testfile.txt fmt.println file to open is strfile 開啟檔案,如果沒有,那麼建立,設定為讀寫...