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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go Resiliency庫中timeout實(shí)現(xiàn)原理及源碼解析
Go-Resiliency庫中的timeout是一種基于協(xié)程的超時(shí)機(jī)制,通過創(chuàng)建協(xié)程來執(zhí)行任務(wù)并設(shè)置超時(shí)時(shí)間,若任務(wù)執(zhí)行時(shí)間超時(shí)則中止協(xié)程并返回錯(cuò)誤,需要詳細(xì)了解可以參考下文2023-05-05
golang跳轉(zhuǎn)語句goto,break,continue的使用及區(qū)別說明
這篇文章主要介紹了golang跳轉(zhuǎn)語句goto,break,continue的使用及區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
Golang如何快速構(gòu)建一個(gè)CLI小工具詳解
這篇文章主要為大家介紹了Golang如何快速構(gòu)建一個(gè)CLI小工具詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Go語言切片前或中間插入項(xiàng)與內(nèi)置copy()函數(shù)詳解
這篇文章主要介紹了Go語言切片前或中間插入項(xiàng)與內(nèi)置copy()函數(shù)詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
Go語言結(jié)構(gòu)體Go range的學(xué)習(xí)教程
這篇文章主要為大家介紹了Go語言結(jié)構(gòu)體Go range的學(xué)習(xí)教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

