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

go寫文件后出現(xiàn)大量NUL字符問題解決

 更新時間:2023年12月05日 10:16:24   作者:ProblemTerminator  
本文主要介紹了go寫文件后出現(xiàn)大量NUL字符問題解決,由于每次寫的時候設(shè)置的長度都是64,在某次不足64時,byte切片空余位置被填充為空字符,下面就來介紹一下如何解決

背景

寫文件完成后發(fā)現(xiàn):

size明顯也和正常的不相等。

看看修改前

buf := make([]byte, 64)
buffer := bytes.NewBuffer(buf)

// ...其它邏輯使得buffer有值

// 打開即將要寫入的文件,不存在則創(chuàng)建
f, err := os.OpenFile(filepath, os.O_CREATE|os.O_TRUNC, 0666)

writer := bufio.NewWriter(f)
n, err := io.Copy(writer, buffer)
err = writer.Flush()

修改后

主要是前兩句,替換為

buffer := bytes.NewBuffer([]byte{})

buffer := &bytes.Buffer{}

下面的代碼一樣。

原因

每次寫的時候設(shè)置的長度都是64,在某次不足64時,byte切片空余位置被填充為空字符;至于到底是文件前、文件中、文件末尾等什么地方出現(xiàn)該字符,就看每次填充到buf是怎么填充的了。

如果不是用io.Copy,比如用的是如下方式進行寫操作: 

_, err = writer.Write(bs[:n])

則Write方法盡量寫成bs[:n],這里的n是本次要寫入的實際長度,而不是直接的bs或bs[:],即重點是控制長度,否則都可能產(chǎn)生此問題。

到此這篇關(guān)于go寫文件后出現(xiàn)大量NUL字符問題解決的文章就介紹到這了,更多相關(guān)go出現(xiàn)NUL字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang實現(xiàn)Md5校驗的代碼示例

    Golang實現(xiàn)Md5校驗的代碼示例

    最近項目中有個需求,就是地圖文件下發(fā)后,接收方需要文件的md5值,和接收到的文件做比對,以免文件不完整,引起bug,于是測試了下本地文件和遠程文件的md5計算,所以本文給大家介紹了Golang實現(xiàn)Md5校驗,需要的朋友可以參考下
    2024-07-07
  • go語言中的udp協(xié)議及TCP通訊實現(xiàn)示例

    go語言中的udp協(xié)議及TCP通訊實現(xiàn)示例

    這篇文章主要為大家介紹了go語言中的udp協(xié)議及TCP通訊的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 詳解golang的切片擴容機制

    詳解golang的切片擴容機制

    golang的切片擴容機制是golang面試者繞不開的一扇大門,無論在面試提問,或者面試情景上都繞不開它,今天就說說我理解下的切片擴容機制,感興趣的小伙伴跟著小編一起來看看吧
    2023-07-07
  • Golang中的http.Server源碼深入分析

    Golang中的http.Server源碼深入分析

    這篇文章主要介紹了Golang中的http.Server源碼,實現(xiàn)一個http.Server非常容易,只需要短短幾行代碼,同時有了協(xié)程的加持,Go實現(xiàn)的http.Server能夠取得非常優(yōu)秀的性能,下面我們來分析看看http.Server的源碼
    2023-05-05
  • golang中判斷請求是http還是https獲取當前訪問地址

    golang中判斷請求是http還是https獲取當前訪問地址

    這篇文章主要為大家介紹了golang中判斷請求是http還是https獲取當前訪問地址示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Go?http.Transport?主要參數(shù)說明

    Go?http.Transport?主要參數(shù)說明

    這篇文章主要為大家介紹了Go?http.Transport主要參數(shù)說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • golang中的并發(fā)和并行

    golang中的并發(fā)和并行

    這篇文章主要介紹了golang中的并發(fā)和并行用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go?Java算法之單詞搜索示例詳解

    Go?Java算法之單詞搜索示例詳解

    這篇文章主要為大家介紹了Go?Java算法之單詞搜索示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Go語言基礎(chǔ)go doc命令用法及示例詳解

    Go語言基礎(chǔ)go doc命令用法及示例詳解

    這篇文章主要為大家介紹了Go語言基礎(chǔ)go doc命令的用法及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步
    2021-11-11
  • 使用Go開發(fā)硬件驅(qū)動程序的流程步驟

    使用Go開發(fā)硬件驅(qū)動程序的流程步驟

    Golang是一種簡潔、高效的編程語言,它的強大并發(fā)性能和豐富的標準庫使得它成為了開發(fā)硬件驅(qū)動的理想選擇,在本文中,我們將探討如何使用Golang開發(fā)硬件驅(qū)動程序,并提供一個實例來幫助你入門,需要的朋友可以參考下
    2023-11-11

最新評論

余姚市| 万全县| 荣昌县| 南昌市| 南郑县| 南投县| 日喀则市| 台北县| 镶黄旗| 科技| 什邡市| 娄底市| 普宁市| 荥经县| 高淳县| 西丰县| 包头市| 县级市| 永定县| 汽车| 汕头市| 嫩江县| 阿荣旗| 扶绥县| 阳山县| 怀宁县| 秦皇岛市| 阿坝| 北碚区| 丰原市| 西丰县| 岗巴县| 义马市| 洛扎县| 鄂尔多斯市| 西吉县| 新安县| 昭通市| 丽水市| 文昌市| 永德县|