日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Go語(yǔ)言學(xué)習(xí)筆記之文件讀寫(xiě)操作詳解_Golang

作者:劍客阿良_ALiang ? 更新時(shí)間: 2022-07-23 編程語(yǔ)言

文件操作比較多,分為幾篇來(lái)寫(xiě)吧。首先是文件的讀寫(xiě),在平時(shí)的工程化操作中使用最多。

文件寫(xiě)

樣例代碼如下

package main
 
import (
    "bufio"
    "fmt"
    "io"
    "os"
)
 
//寫(xiě)文件
func DoWriteFile() error {
    _filePath := "./test.txt"
    _file, _err := os.OpenFile(_filePath, os.O_WRONLY|os.O_CREATE, 0666)
    if _err != nil {
        fmt.Printf("打開(kāi)文件錯(cuò)誤=%v\n", _err)
        return _err
    }
    //提前關(guān)閉文件
    defer _file.Close()
    //寫(xiě)入文件
    _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("打開(kāi)文件錯(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方法是以只讀模式打開(kāi)文件。

小結(jié)

在使用os.OpenFile方法的時(shí)候需要使用到文件模式,文件的打開(kāi)模式如下:

O_RDONLY int = syscall.O_RDONLY // 只讀模式打開(kāi)文件

O_WRONLY int = syscall.O_WRONLY // 只寫(xiě)模式打開(kāi)文件

O_RDWR int = syscall.O_RDWR // 讀寫(xiě)模式打開(kāi)文件

O_APPEND int = syscall.O_APPEND // 寫(xiě)操作時(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 // 打開(kāi)文件用于同步I/O

O_TRUNC int = syscall.O_TRUNC // 如果可能,打開(kāi)時(shí)清空文件

原文鏈接:https://blog.csdn.net/zhiweihongyan1/article/details/124932074

欄目分類
最近更新