中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go中如何通過Gob包序列化二進制數據

發布時間:2022-01-17 16:56:55 來源:億速云 閱讀:188 作者:kk 欄目:大數據

Go中如何通過Gob包序列化二進制數據,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。


下面給大家介紹了如何基于 JSON 和 CSV 格式序列化數據到文本文件,除此之外,Go 官方還提供了 encoding/gob 包將數據序列化為二進制流以便通過網絡進行傳輸。

我們在前面 Go 入門教程中已經介紹過 Gob 包作為二進制數據編解碼工具的基本使用,這里簡單演示下如何將 Gob 編碼后的二進制數據寫入磁盤文件:

package main

import (
    "bytes"
    "encoding/gob"
    "fmt"
    "io/ioutil"
)

type Article struct {
    Id int
    Title string
    Content string
    Author string
}

// 寫入二進制數據到磁盤文件
func write(data interface{}, filename string)  {
    buffer := new(bytes.Buffer)
    encoder := gob.NewEncoder(buffer)
    err := encoder.Encode(data)
    if err != nil {
        panic(err)
    }
    err = ioutil.WriteFile(filename, buffer.Bytes(), 0600)
    if err != nil {
        panic(err)
    }
}

// 從磁盤文件加載二進制數據
func read(data interface{}, filename string) {
    raw, err := ioutil.ReadFile(filename)
    if err != nil {
        panic(err)
    }
    buffer := bytes.NewBuffer(raw)
    dec := gob.NewDecoder(buffer)
    err = dec.Decode(data)
    if err != nil {
        panic(err)
    }
}

func main()  {
    article := Article{
        Id: 1,
        Title: "基于 Gob 包編解碼二進制數據",
        Content: "通過 Gob 包序列化二進制數據以便通過網絡傳輸",
        Author: "學院君",
    }
    write(article, "article_data")
    var articleData Article
    read(&articleData, "article_data")
    fmt.Printf("%#v\n", articleData)
}
 

運行上述代碼,可以正常解碼出二進制數據,說明通過 Gob 包編解碼成功:

Go中如何通過Gob包序列化二進制數據  

在當前目錄下也可以看到生成的 article_data 文件,其中包含的是二進制格式的編碼數據:

Go中如何通過Gob包序列化二進制數據  


什么是go

go是golang的簡稱,golang 是Google開發的一種靜態強類型、編譯型、并發型,并具有垃圾回收功能的編程語言,其語法與 C語言相近,但并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數等功能。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

筠连县| 铜陵市| 高青县| 稻城县| 兴城市| 长岭县| 麻阳| 厦门市| 五大连池市| 咸宁市| 宿迁市| 寿宁县| 永安市| 邢台市| 东方市| 弋阳县| 扎兰屯市| 离岛区| 贺兰县| 太湖县| 修武县| 丁青县| 哈尔滨市| 商都县| 涞源县| 方山县| 新兴县| 石门县| 遂宁市| 宁强县| 沧州市| 东乌珠穆沁旗| 合川市| 荔浦县| 邵阳市| 香格里拉县| 汉沽区| 改则县| 江津市| 濮阳市| 遵化市|