日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GO教程:Go語(yǔ)言二進(jìn)制文件的讀寫(xiě)操作

Go語(yǔ)言的二進(jìn)制(gob)格式是一個(gè)自描述的二進(jìn)制序列。從其內(nèi)部表示來(lái)看,Go語(yǔ)言的二進(jìn)制格式由一個(gè) 0 塊或者更多塊的序列組成,其中的每一塊都包含一個(gè)字節(jié)數(shù),一個(gè)由 0 個(gè)或者多個(gè) typeId-typeSpecification 對(duì)組成的序列,以及一個(gè) typeId-value 對(duì)。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出寬城免費(fèi)做網(wǎng)站回饋大家。

如果 typeId-value 對(duì)的 typeId 是預(yù)先定義好的(例如 bool、int 和 string 等),則這些 typeId-typeSpecification 對(duì)可以省略。否則就用類型對(duì)來(lái)描述一個(gè)自定義類型(如一個(gè)自定義的結(jié)構(gòu)體)。類型對(duì)和值對(duì)之間的 typeId 沒(méi)有區(qū)別。

正如我們將看到的,我們無(wú)需了解其內(nèi)部結(jié)構(gòu)就可以使用 gob 格式, 因?yàn)?encoding/gob 包會(huì)在幕后為我們打理好一切底層細(xì)節(jié)。

Go語(yǔ)言中的 encoding/gob 包也提供了與 encoding/json 包一樣的編碼解碼功能,并且容易使用。通常而言如果對(duì)肉眼可讀性不做要求,gob 格式是Go語(yǔ)言上用于文件存儲(chǔ)和網(wǎng)絡(luò)傳輸最為方便的格式。

寫(xiě)Go語(yǔ)言二進(jìn)制文件

下面通過(guò)一個(gè)簡(jiǎn)單的示例來(lái)演示一下Go語(yǔ)言是如何生成一個(gè)二進(jìn)制文件的,代碼如下所示:

package main

import (
    "encoding/gob"
    "fmt"
    "os"
)

func main() {
    info := "http://c.biancheng.net/golang/"
    file, err := os.Create("./output.gob")
    if err != nil {
        fmt.Println("文件創(chuàng)建失敗", err.Error())
        return
    }
    defer file.Close()

    encoder := gob.NewEncoder(file)
    err = encoder.Encode(info)
    if err != nil {
        fmt.Println("編碼錯(cuò)誤", err.Error())
        return
    } else {
        fmt.Println("編碼成功")
    }
}

運(yùn)行上面的代碼會(huì)在當(dāng)前目錄下生成一個(gè) output.gob 文件,文件內(nèi)容如下所示:

210c 001e 6874 7470 3a2f 2f63 2e62 6961
6e63 6865 6e67 2e6e 6574 2f67 6f6c 616e
672f

讀Go語(yǔ)言二進(jìn)制文件

讀 gob 數(shù)據(jù)和寫(xiě)一樣簡(jiǎn)單,示例代碼如下:

package main

import (
    "encoding/gob"
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("./output.gob")
    if err != nil {
        fmt.Println("文件打開(kāi)失敗", err.Error())
        return
    }
    defer file.Close()

    decoder := gob.NewDecoder(file)
    info := ""
    err = decoder.Decode(&info)
    if err != nil {
        fmt.Println("解碼失敗", err.Error())
    } else {
        fmt.Println("解碼成功")
        fmt.Println(info)
    }
}

運(yùn)行結(jié)果如下:

go run main.go
解碼成功
http://c.biancheng.net/golang/


文章題目:創(chuàng)新互聯(lián)GO教程:Go語(yǔ)言二進(jìn)制文件的讀寫(xiě)操作
本文來(lái)源:http://www.5511xx.com/article/djsdoip.html