Go語(yǔ)言學(xué)習(xí)筆記之文件讀寫操作詳解
文件操作比較多,分為幾篇來(lái)寫吧。首先是文件的讀寫,在平時(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語(yǔ)言學(xué)習(xí)筆記之文件讀寫操作詳解的文章就介紹到這了,更多相關(guān)Go語(yǔ)言文件讀寫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過(guò)與Java功能上的對(duì)比來(lái)學(xué)習(xí)Go語(yǔ)言
這篇文章主要介紹了通過(guò)與Java功能上的對(duì)比來(lái)學(xué)習(xí)Go語(yǔ)言的相關(guān)資料,需要的朋友可以參考下2023-02-02
go?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
Go語(yǔ)言怎么使用變長(zhǎng)參數(shù)函數(shù)
本文主要介紹了Go語(yǔ)言怎么使用變長(zhǎng)參數(shù)函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
golang簡(jiǎn)易令牌桶算法實(shí)現(xiàn)代碼
這篇文章主要介紹了golang簡(jiǎn)易令牌桶算法實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Go語(yǔ)言Zap庫(kù)Logger的定制化和封裝使用詳解
這篇文章主要介紹了Go語(yǔ)言Zap庫(kù)Logger的定制化和封裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

