真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Go中如何通過(guò)Gob包序列化二進(jìn)制數(shù)據(jù)

Go中如何通過(guò)Gob包序列化二進(jìn)制數(shù)據(jù),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到白云鄂網(wǎng)站設(shè)計(jì)與白云鄂網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋白云鄂地區(qū)。

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

我們?cè)谇懊?Go 入門(mén)教程中已經(jīng)介紹過(guò) Gob 包作為二進(jìn)制數(shù)據(jù)編解碼工具的基本使用,這里簡(jiǎn)單演示下如何將 Gob 編碼后的二進(jìn)制數(shù)據(jù)寫(xiě)入磁盤(pán)文件:

package main

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

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

// 寫(xiě)入二進(jìn)制數(shù)據(jù)到磁盤(pán)文件
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)
    }
}

// 從磁盤(pán)文件加載二進(jìn)制數(shù)據(jù)
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 包編解碼二進(jìn)制數(shù)據(jù)",
        Content: "通過(guò) Gob 包序列化二進(jìn)制數(shù)據(jù)以便通過(guò)網(wǎng)絡(luò)傳輸",
        Author: "學(xué)院君",
    }
    write(article, "article_data")
    var articleData Article
    read(&articleData, "article_data")
    fmt.Printf("%#v\n", articleData)
}
 

運(yùn)行上述代碼,可以正常解碼出二進(jìn)制數(shù)據(jù),說(shuō)明通過(guò) Gob 包編解碼成功:

Go中如何通過(guò)Gob包序列化二進(jìn)制數(shù)據(jù)  

在當(dāng)前目錄下也可以看到生成的 article_data 文件,其中包含的是二進(jìn)制格式的編碼數(shù)據(jù):

Go中如何通過(guò)Gob包序列化二進(jìn)制數(shù)據(jù)  

什么是go

go是golang的簡(jiǎn)稱(chēng),golang 是Google開(kāi)發(fā)的一種靜態(tài)強(qiáng)類(lèi)型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語(yǔ)言,其語(yǔ)法與 C語(yǔ)言相近,但并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


網(wǎng)站欄目:Go中如何通過(guò)Gob包序列化二進(jìn)制數(shù)據(jù)
文章出自:http://weahome.cn/article/gpsosh.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部