最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go文件操作(新建打開寫入讀取刪除關(guān)閉)學(xué)習(xí)筆記

 更新時間:2024年01月18日 10:50:47   作者:wohu?程序員的自我進(jìn)化  
這篇文章主要為大家介紹了Go文件操作(新建打開寫入讀取刪除關(guān)閉)學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Go 操作文本文件

Go 操作文本文件時,與其它語言一樣也有新建文件、打開文件、寫文件、讀文件、刪除文件等操作,我們一起先看下 Go 操作文本文件的 API。

1. 新建文件

//返回 File 的內(nèi)存地址, 錯誤信息;通過 os 庫調(diào)用
func Create(name string) (file *File, err Error)
//返回文件的內(nèi)存地址, 通過 os 庫調(diào)用
func NewFile(fd    int, name string) *File

2. 打開文件

//返回 File 的內(nèi)存地址, 錯誤信息;通過 os 庫調(diào)用
func Open(name    string) (file *File, err Error)
//返回 File 的內(nèi)存地址, 錯誤信息, 通過 os 庫調(diào)用
func OpenFile(name string, flag    int, perm unit32)  (file *File, err Error)

3. 寫入文件

//寫入一個 slice, 返回寫的個數(shù), 錯誤信息, 通過 File 的內(nèi)存地址調(diào)用
func (file    *File).Write(b []byte)  (n int, err Error)
//從 slice 的某個位置開始寫入, 返回寫的個數(shù), 錯誤信息,通過 File 的內(nèi)存地址調(diào)用
func (file    *File).WriteAt(b []byte, off int64) (n int, err Error)
//寫入一個字符串, 返回寫的個數(shù), 錯誤信息, 通過 File 的內(nèi)存地址調(diào)用
func (file    *File).WriteString(s string) (ret int, err Error)

4. 讀取文件

//讀取一個 slice, 返回讀的個數(shù), 錯誤信息, 通過 File 的內(nèi)存地址調(diào)用
func (file    *File).Read(b []byte) (n int, err Error)
//從 slice 的某個位置開始讀取, 返回讀到的個數(shù), 錯誤信息, 通過 File 的內(nèi)存地址調(diào)用
func (file    *File).ReadAt(b []byte, off int64) (n int, err Error)

4. 刪除文件

//傳入文件的路徑來刪除文件,返回錯誤個數(shù)
func Remove(name string)    Error

5. 關(guān)閉文件

func (f *File) Close() error

使用示例

package main
import (
    "fmt"
    "os"
)
func main() {
    fileName := "/home/wohu/gocode/src/test.txt"
    writeFile(fileName)
    readFile(fileName)
}
func writeFile(fileName string) {
    file, err := os.Create(fileName)
    if err != nil {
        fmt.Println(err)
        return
    }
    for i := 0; i <= 5; i++ {
        outStr := fmt.Sprintf("%s:%d\n", "hello, world", i)
        file.WriteString(outStr)
        file.Write([]byte("abcd\n"))
    }
    file.Close()
}
func readFile(fileName string) {
    file, err := os.Open(fileName)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer file.Close()
    buf := make([]byte, 1024)
    for {
        n, _ := file.Read(buf)
        if n == 0 {
            //0 表示到達(dá)EOF
            break
        }
        os.Stdout.Write(buf)
    }
}

輸出結(jié)果:

wohu@wohu:~/gocode/src$ ls
github.com  golang.org  hello.go  test.txt
wohu@wohu:~/gocode/src$ cat test.txt 
hello, world:0
abcd
hello, world:1
abcd
hello, world:2
abcd
hello, world:3
abcd
hello, world:4
abcd
hello, world:5
abcd
wohu@wohu:~/gocode/src$ 

以上就是Go文件操作(新建打開寫入讀取刪除關(guān)閉)學(xué)習(xí)筆記的詳細(xì)內(nèi)容,更多關(guān)于Go文件操作的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • GoLang bytes.Buffer基礎(chǔ)使用方法詳解

    GoLang bytes.Buffer基礎(chǔ)使用方法詳解

    Go標(biāo)準(zhǔn)庫中的bytes.Buffer(下文用Buffer表示)類似于一個FIFO的隊列,它是一個流式字節(jié)緩沖區(qū),我們可以持續(xù)向Buffer尾部寫入數(shù)據(jù),從Buffer頭部讀取數(shù)據(jù)。當(dāng)Buffer內(nèi)部空間不足以滿足寫入數(shù)據(jù)的大小時,會自動擴(kuò)容
    2023-03-03
  • Go語言web框架Gin響應(yīng)客戶端的方式

    Go語言web框架Gin響應(yīng)客戶端的方式

    Gin是一個用Go語言編寫的web框架,它是一個類似于martini但擁有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍,本文給大家介紹了Go語言web框架Gin響應(yīng)客戶端有哪些方式,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-10-10
  • 解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系

    解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系

    這篇文章主要介紹了解析GOROOT、GOPATH、Go-Modules-三者的關(guān)系,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 深入了解Go語言中database/sql是如何設(shè)計的

    深入了解Go語言中database/sql是如何設(shè)計的

    在?Go?語言中內(nèi)置了?database/sql?包,它只對外暴露了一套統(tǒng)一的編程接口,便可以操作不同數(shù)據(jù)庫,那么database/sql?是如何設(shè)計的呢,下面就來和大家簡單聊聊吧
    2023-07-07
  • go語言接口的定義和實現(xiàn)簡單分享

    go語言接口的定義和實現(xiàn)簡單分享

    這篇文章主要介紹了go語言接口的定義和實現(xiàn)簡單分享的相關(guān)資料,需要的朋友可以參考下
    2023-08-08
  • 深入了解Golang包的獲取方法

    深入了解Golang包的獲取方法

    Go語言有一個獲取遠(yuǎn)程包的工具就是go get,本文將詳細(xì)為大家介紹一下Go語言包的獲取的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • mac下安裝golang框架iris的方法

    mac下安裝golang框架iris的方法

    這篇文章主要介紹了mac下安裝golang框架iris的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Go Uber靜態(tài)分析工具NilAway使用初體驗

    Go Uber靜態(tài)分析工具NilAway使用初體驗

    這篇文章主要介紹了Go Uber靜態(tài)分析工具NilAway使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Gin框架令牌桶限流實戰(zhàn)指南

    Gin框架令牌桶限流實戰(zhàn)指南

    限流是一種通過控制請求處理速率來保護(hù)系統(tǒng)的技術(shù),它能有效防止服務(wù)器因突發(fā)流量或惡意攻擊而過載,確保服務(wù)的穩(wěn)定性和可用性,本文就來介紹一下Gin 框架令牌桶限流的實現(xiàn),感興趣的可以了解一下
    2025-10-10
  • 掌握Golang中的select語句實現(xiàn)并發(fā)編程

    掌握Golang中的select語句實現(xiàn)并發(fā)編程

    Golang中的select語句用于在多個通道間選擇可讀或可寫的操作,并阻塞等待其中一個通道進(jìn)行操作。可以用于實現(xiàn)超時控制、取消和中斷操作等。同時,select語句支持default分支,用于在沒有任何通道可操作時執(zhí)行默認(rèn)操作
    2023-04-04

最新評論

遵化市| 新化县| 柘城县| 鄂尔多斯市| 平山县| 米易县| 广宗县| 泗水县| 红河县| 开鲁县| 万年县| 德令哈市| 宜阳县| 三原县| 浑源县| 宜章县| 库尔勒市| 太谷县| 南陵县| 定陶县| 治县。| 旺苍县| 陇南市| 柏乡县| 剑川县| 微博| 芜湖县| 错那县| 涪陵区| 株洲县| 镇巴县| 化州市| 安庆市| 洪雅县| 商城县| 岳普湖县| 昆明市| 重庆市| 南投县| 玉门市| 绵阳市|