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

詳解Go語言中io/ioutil工具的使用

 更新時(shí)間:2022年05月26日 11:31:48   作者:劍客阿良_ALiang  
這篇文章主要為大家詳細(xì)介紹了Go語言中io/ioutil工具的使用,從而簡化文件操作。文中是示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

學(xué)習(xí)筆記,寫到哪是哪。

接著上一篇,我們看看io/ioutil工具如何使用,簡化文件操作。

讀取文件

讀取文件可以使用ReadAll方法或者ReadFile方法。

ReadAll方法樣例代碼如下

//讀取文件ReadAll
func IoUtilRead1() {
    _file, _e := os.Open("./test.txt")
    if _e != nil {
        fmt.Println(_e)
        return
    }
    defer _file.Close()
    _text, _err := ioutil.ReadAll(_file)
    fmt.Println(_err)
    fmt.Println(string(_text))
}

文件內(nèi)容和執(zhí)行結(jié)果如下

<nil>
今天天氣真好

Process finished with the exit code 0 

ReadFile方法樣例代碼如下

//讀取文件ReadFile
func IoUtilRead2() {
    _text, _err := ioutil.ReadFile("./test.txt")
    fmt.Println(_err)
    fmt.Println(string(_text))
}

執(zhí)行結(jié)果如下

<nil>
今天天氣真好

Process finished with the exit code 0

寫文件

可以使用ioutil.WriteFile方法寫文件。

樣例代碼如下

//寫文件
func IoUtilWriteFile() {
    _err := ioutil.WriteFile("./test.txt", []byte("今天天氣真好"), os.ModePerm)
    fmt.Println(_err)
}

注意方法還是要帶入文件權(quán)限參數(shù),文件如果不存在的話,會(huì)自動(dòng)創(chuàng)建。但是不能追加文本內(nèi)容,還是要注意一下。

讀取文件夾下所有文件信息

可以使用ioutil.ReadDir方法讀取目錄下所有文件信息。

樣例代碼如下

//讀取文件夾下的文件
func IoUtilReadDir() {
    fileInfoData, _err := ioutil.ReadDir(".")
    if _err != nil {
        fmt.Println(_err)
        return
    }
    for k, v := range fileInfoData {
        fmt.Printf("第%d個(gè)文件,名稱%s,目錄與否:%v\n", k, v.Name(), v.IsDir())
    }
}

輸出文件編號(hào)、名稱、是否為目錄,執(zhí)行結(jié)果截圖如下

創(chuàng)建臨時(shí)文件和臨時(shí)文件夾

可以使用ioutil.TempFile和ioutil.TempDir來創(chuàng)建臨時(shí)文件和臨時(shí)文件夾。

樣例代碼如下

//創(chuàng)建臨時(shí)文件和文件夾
func IoUtilTemp() {
    _file, _err := ioutil.TempFile(".", "test1.txt")
    if _err != nil {
        fmt.Println(_err)
        return
    }
    defer _file.Close()
    _n, _err1 := _file.WriteString("你是誰")
    if _err1 != nil {
        fmt.Println(_err1)
        return
    }
    fmt.Printf("字符:%d", _n)
    _dirName, _err2 := ioutil.TempDir(".", "output2")
    if _err2 != nil {
        fmt.Println(_err2)
        return
    }
    fmt.Printf("臨時(shí)文件夾:%v\n", _dirName)
}

執(zhí)行結(jié)果如下截圖所示

臨時(shí)文件和臨時(shí)文件夾后面會(huì)帶一串隨機(jī)字符串。

拷貝文件

使用ioutil寫了一個(gè)拷貝方法。

樣例代碼如下

//拷貝文件
func IoUtilCopyFile(srcFile, distFile string) (int, error) {
    _data, _err := ioutil.ReadFile(srcFile)
    if _err != nil {
        return 0, _err
    }
    _err = ioutil.WriteFile(distFile, _data, os.ModePerm)
    if _err != nil {
        return 0, _err
    }
    return len(_data), nil
}
 
func main() {
    IoUtilCopyFile("test.txt", "test1.txt")
}

執(zhí)行結(jié)果如下

小結(jié)

總的來說,使用起來簡單了不少,里面有使用到string與[]byte的轉(zhuǎn)換,記錄一下別忘了。

//string和[]byte之間的轉(zhuǎn)換
func transforStringAndByte() {
    var str string = "今天天氣真好"
    data := []byte(str)
    fmt.Println(len(data))
    str1 := string(data[:])
    fmt.Println(str1)
}

以上就是詳解Go語言中io/ioutil工具的使用的詳細(xì)內(nèi)容,更多關(guān)于Go語言io/ioutil工具的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何在Go中使用切片容量和長度

    如何在Go中使用切片容量和長度

    這篇文章主要介紹了如何在Go中使用切片容量和長度,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • go 熔斷原理分析與源碼解讀

    go 熔斷原理分析與源碼解讀

    這篇文章主要為大家介紹了go 熔斷原理分析與源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go語言學(xué)習(xí)技巧之如何合理使用Pool

    Go語言學(xué)習(xí)技巧之如何合理使用Pool

    這篇文章主要給大家介紹了關(guān)于Go語言學(xué)習(xí)技巧之如何合理使用Pool的相關(guān)資料,Pool用于存儲(chǔ)那些被分配了但是沒有被使用,而未來可能會(huì)使用的值,以減小垃圾回收的壓力。文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • Go語言編程中對(duì)文件讀寫的基本方法整理

    Go語言編程中對(duì)文件讀寫的基本方法整理

    這篇文章主要介紹了Go語言編程中對(duì)文件讀寫的基本方法整理,是Go語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • Go http client 連接池不復(fù)用的問題

    Go http client 連接池不復(fù)用的問題

    這篇文章主要介紹了Go http client 連接池不復(fù)用的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • golang操作mongodb的方法

    golang操作mongodb的方法

    這篇文章主要介紹了golang操作mongodb的方法,涉及Go語言操作mongodb的連接、讀取及顯示的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Go語言編譯原理之源碼調(diào)試

    Go語言編譯原理之源碼調(diào)試

    這篇文章主要為大家介紹了Go語言編譯原理之源碼調(diào)試示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go語言使用templ實(shí)現(xiàn)編寫HTML用戶界面

    Go語言使用templ實(shí)現(xiàn)編寫HTML用戶界面

    templ是一個(gè)在 Go 中編寫 HTML 用戶界面的語言,使用 templ,我們可以創(chuàng)建可呈現(xiàn) HTML 片段的組件,下面就跟隨小編一起了解一下具體的實(shí)現(xiàn)方法吧
    2023-12-12
  • 詳解Golang利用反射reflect動(dòng)態(tài)調(diào)用方法

    詳解Golang利用反射reflect動(dòng)態(tài)調(diào)用方法

    這篇文章主要介紹了詳解Golang利用反射reflect動(dòng)態(tài)調(diào)用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Golang中的new()和make()函數(shù)本質(zhì)區(qū)別

    Golang中的new()和make()函數(shù)本質(zhì)區(qū)別

    在 Go 語言開發(fā)中,new() 和 make() 是兩個(gè)容易讓開發(fā)者感到困惑的內(nèi)建函數(shù),盡管它們都用于內(nèi)存分配,但其設(shè)計(jì)目的、適用場景和底層實(shí)現(xiàn)存在本質(zhì)差異,本文將通過類型系統(tǒng)、內(nèi)存模型和編譯器實(shí)現(xiàn)三個(gè)維度,深入解析這兩個(gè)函數(shù)的本質(zhì)區(qū)別,感興趣的朋友一起看看吧
    2025-02-02

最新評(píng)論

长汀县| 澎湖县| 兴化市| 文水县| 迁西县| 红桥区| 博罗县| 通河县| 社旗县| 东辽县| 郴州市| 平昌县| 当阳市| 拜城县| 大兴区| 木兰县| 永昌县| 论坛| 昭通市| 翁牛特旗| 新丰县| 县级市| 青阳县| 建德市| 太湖县| 孙吴县| 阿拉善盟| 祁东县| 新津县| 治多县| 华亭县| 昭觉县| 通榆县| 法库县| 扶绥县| 华容县| 越西县| 高密市| 鄂州市| 万州区| 金昌市|