Go語言學習筆記之文件讀寫操作詳解

文件操作比較多,分為幾篇來寫吧。首先是文件的讀寫,在平時的工程化操作中使用最多。

文件寫

樣例代碼如下

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("打開文件錯誤=%v\n", _err)
        return _err
    }
    //提前關閉文件
    defer _file.Close()
    //寫入文件
    _writer := bufio.NewWriter(_file)
    _writer.WriteString("hahaha!\n")
    _writer.Flush()
    return nil
}
 
 
func main() {
    DoWriteFile()
}

這裡使用瞭os.OpenFile方法,後面的os.O_WRONLY模式會在後面提到。

執行結果

文件讀

樣例代碼如下

package main
 
import (
    "bufio"
    "fmt"
    "io"
    "os"
)
 
//讀文件
func DoReadFile() error {
    _filePath := "./test.txt"
    _file, _err := os.Open(_filePath)
    if _err != nil {
        fmt.Printf("打開文件錯誤=%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()
}

執行結果如下

hahaha!

Process finished with the exit code 0

註意,os.Open方法是以隻讀模式打開文件。

小結

在使用os.OpenFile方法的時候需要使用到文件模式,文件的打開模式如下:

O_RDONLY int = syscall.O_RDONLY // 隻讀模式打開文件

O_WRONLY int = syscall.O_WRONLY // 隻寫模式打開文件

O_RDWR int = syscall.O_RDWR // 讀寫模式打開文件

O_APPEND int = syscall.O_APPEND // 寫操作時將數據附加到文件尾部

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 // 如果可能,打開時清空文件

到此這篇關於Go語言學習筆記之文件讀寫操作詳解的文章就介紹到這瞭,更多相關Go語言文件讀寫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: