Golang 檔案操作 防備忘

2021-10-13 05:38:25 字數 2062 閱讀 1842

檔案概念

上圖中,返回的這個file指標,有三種叫法:

檔案物件、檔案指標、檔案控制代碼 都可以

我們在理解的時候,其實file就是乙個指標,這樣更容易理解。

檔案的開啟、關閉
file,err := os.

open

("路徑+檔名"

)if err !=

nilerr = file.

close()

//檔案關閉

if err !=

nil

用帶緩衝的reader讀取大檔案
import

"bufio"

//主要是,你知道有這個個包

reader := bufio.

newreader

(file)

for}

一次性讀取小檔案
import

"io/ioutil"

file :=

"d:/test.txt"

content, err := ioutil.

readfile

(file)

if err !=

nilfmt.

printf

("%v"

,string

(content)

)

寫檔案
主要是這個函式

func

openfile

(name string

, flag int

, perm filemode)

(file *file, err error

)引數一:檔案路徑

引數二:開啟方式

引數三:控制許可權,linux下用,用到再說吧

開啟方式

const

( o_rdonly int

= syscall.o_rdonly // 唯讀模式開啟檔案

o_wronly int

= syscall.o_wronly // 只寫模式開啟檔案

o_rdwr int

= syscall.o_rdwr // 讀寫模式開啟檔案

o_create int

= syscall.o_creat // 如果不存在將建立乙個新檔案

o_excl int

= syscall.o_excl // 和o_create配合使用,檔案必須不存在

o_sync int

= syscall.o_sync // 開啟檔案用於同步i/o

o_trunc int

= syscall.o_trunc // 如果可能,開啟時清空檔案

)過程:

filepath :=

"d:/anc.txt"

file, err := os.

openfile

0666

)if err !=

nilstr :=

"鬼怪\n"

writer := bufio.

newwriter

(file)

for i :=

0; i <

5; i++

writer.

flush()

//這個真正的寫到磁碟中

判斷檔案是否存在
func

pathexists

(path string)(

bool

,error

)if os.

isnotexist

(err)

return

false

, err

}

Golang 基礎 防備忘

常量 關於const的用法 const obj1 string cjs const obj2 nb 也可把tped去掉,系統會自動識別型別 const sunday 7 monday 1 tuesday 2 wednesday 3 thursday 4 friday 5 saturday 6 關於i...

Golang 介面 防備忘

介面定義其實就是面對物件裡面的多型性,而且比面對物件裡面的更容易理解。介面定義了一組方法 方法集 但是這些方法不包含 實現 它們沒有被實現 它們是抽象的 介面裡也不能包含變數。type namer inte ce 上面的 namer 是乙個 介面型別。按照約定,只包含乙個方法的 介面的名字由方法名加...

Golang陣列 防備忘

沒有新東西,就是整理一遍,加強記憶!最基礎形式var obj 5 intobj 3 99 索引從0開始,可通過下標方式訪問,同c語言定義的同時賦值obj int obj int 這個他媽也是切片 obj 6 int 這三種方式均可 var obj 5 string 給對應的下標賦值,其餘下標資料為空...