Go語言學(xué)習(xí)筆記之文件讀寫操作詳解
文件操作比較多,分為幾篇來寫吧。首先是文件的讀寫,在平時(shí)的工程化操作中使用最多。
文件寫
樣例代碼如下
package main import ( "bufio" "fmt" "io" "os" ) //寫文件 func DoWriteFile() error { _filePath := "./test.txt" _file, _err := os.OpenFile(_filePath, os.O_WRONLY|os.O_CREATE, 0666) if _err != nil { fmt.Printf("打開文件錯(cuò)誤=%v\n", _err) return _err } //提前關(guān)閉文件 defer _file.Close() //寫入文件 _writer := bufio.NewWriter(_file) _writer.WriteString("hahaha!\n") _writer.Flush() return nil } func main() { DoWriteFile() }
這里使用了os.OpenFile方法,后面的os.O_WRONLY模式會(huì)在后面提到。
執(zhí)行結(jié)果
文件讀
樣例代碼如下
package main import ( "bufio" "fmt" "io" "os" ) //讀文件 func DoReadFile() error { _filePath := "./test.txt" _file, _err := os.Open(_filePath) if _err != nil { fmt.Printf("打開文件錯(cuò)誤=%v\n", _err) return _err } defer _file.Close() _reader := bufio.NewReader(_file) for true { str, err := _reader.ReadString('\n') if err == io.EOF { break } fmt.Println(str) } return _err } func main() { DoReadFile() }
執(zhí)行結(jié)果如下
hahaha!
Process finished with the exit code 0
注意,os.Open方法是以只讀模式打開文件。
小結(jié)
在使用os.OpenFile方法的時(shí)候需要使用到文件模式,文件的打開模式如下:
O_RDONLY int = syscall.O_RDONLY // 只讀模式打開文件
O_WRONLY int = syscall.O_WRONLY // 只寫模式打開文件
O_RDWR int = syscall.O_RDWR // 讀寫模式打開文件
O_APPEND int = syscall.O_APPEND // 寫操作時(shí)將數(shù)據(jù)附加到文件尾部
O_CREATE int = syscall.O_CREAT // 如果不存在將創(chuàng)建一個(gè)新文件
O_EXCL int = syscall.O_EXCL // 和O_CREATE配合使用,文件必須不存在
O_SYNC int = syscall.O_SYNC // 打開文件用于同步I/O
O_TRUNC int = syscall.O_TRUNC // 如果可能,打開時(shí)清空文件
到此這篇關(guān)于Go語言學(xué)習(xí)筆記之文件讀寫操作詳解的文章就介紹到這了,更多相關(guān)Go語言文件讀寫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過與Java功能上的對(duì)比來學(xué)習(xí)Go語言
這篇文章主要介紹了通過與Java功能上的對(duì)比來學(xué)習(xí)Go語言的相關(guān)資料,需要的朋友可以參考下2023-02-02go?tool?pprof?參數(shù)?'-base'?和?'-diff_base&
這篇文章主要介紹了go?tool?pprof?參數(shù)?'-base'?和?'-diff_base'之間的區(qū)別,兩個(gè)參數(shù)都是用于計(jì)算當(dāng)前?profile文件減去基準(zhǔn)profile文件所獲得的差值,用這個(gè)差值生成一個(gè)新的profile文件,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05