精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一篇文章帶你搞定Go語言基礎之文件操作

開發 后端
Hey,大家好呀,我是Go進階者,這次咱們來說一下文件操作。文件操作就簡單了,像打開word了,excel了,都是文件操作,當然,我們肯定是不能直接操作word的。 我們就從最簡單的普通文件開始叭!

[[382352]]

前言

Hey,大家好呀,我是Go進階者,這次咱們來說一下文件操作。

文件操作就簡單了,像打開word了,excel了,都是文件操作,當然,我們肯定是不能直接操作word的

我們就從最簡單的普通文件開始叭!

打開和關閉文件

  1. package main 
  2.  
  3. import "os" 
  4.  
  5. func main() { 
  6.     //os.Open是只讀模式 
  7.     fileObj, err := os.Open("永不退縮.txt"
  8.     if err != nil { 
  9.         panic(err) 
  10.     //關閉文件 
  11.     fileObj.Close() 
  12.     //一般情況下使用這種方式關閉文件 
  13.     defer fileObj.Close() 

注:如果你使用的是Goland,在學習文件操作這一塊時,盡量不要右擊運行,因為查找文件路徑不一樣

盡可能的編譯成.exe文件,這樣找的就是當前目錄

 

讀取文件

讀取指定大小

代碼

  1. func main() { 
  2.     //os.Open是只讀模式 
  3.     fileObj, err := os.Open("永不退縮.txt"
  4.     if err != nil { 
  5.         panic(err) 
  6.     var fileBytes = make([]byte,128) 
  7.     n, err := fileObj.Read(fileBytes) 
  8.     if err != nil { 
  9.         panic(err) 
  10.     fmt.Println(string(fileBytes[:n])) 
  11.     //一般情況下使用這種方式關閉文件 
  12.     defer fileObj.Close() 

執行結果

 

可以發現,根本就沒有讀取完,并且還亂碼了。

讀取整個文件

上述我們只讀取了128個字節,一個中文3個字節,128/3,除下標點符號,應該是40個左右,明顯不夠

那該怎么辦才能讀取所有呢???

上述我們只讀取了128個字節,我們可以在讀取128個字節啊

然后找個罐子將每次讀取的都裝進去,讀取完,裝完,完美

代碼

  1. func main() { 
  2.     //os.Open是只讀模式 
  3.     fileObj, err := os.Open("永不退縮.txt"
  4.     if err != nil { 
  5.         panic(err) 
  6.     //一般情況下使用這種方式關閉文件 
  7.     defer fileObj.Close() 
  8.  
  9.     var 罐子 []string 
  10.     var 每次讀取字節 = make([]byte,128) 
  11.     for
  12.         n, err := fileObj.Read(每次讀取字節) 
  13.         //err == io.EOF表示讀完了,一定要放在err != nil前面 
  14.         if err == io.EOF { 
  15.             break 
  16.         } 
  17.         if err != nil { 
  18.             panic(err) 
  19.         } 
  20.         var 每次讀取字符串 = string(每次讀取字節[:n]) 
  21.         罐子 = append(罐子,每次讀取字符串) 
  22.     fmt.Println(罐子) 

執行結果

 

會發現還是有亂碼,這是為啥???

這是因為我們每次都是按照字節來讀取一部分,一部分的,但是中文是3個字節,所有有時候可能切錯了,就出現了亂碼

那咋辦呢?沒辦法,默認的讀取文件就這么點功能,更多功能,盡在bufio

bufio

bufio

可以理解為原生file操作的一個加強版,更牛叉,功能更多

還是上述這個文件,看看如何完美讀取

代碼

  1. func main() { 
  2.     //os.Open是只讀模式 
  3.     fileObj, err := os.Open("永不退縮.txt"
  4.     if err != nil { 
  5.         panic(err) 
  6.     //一般情況下使用這種方式關閉文件 
  7.     defer fileObj.Close() 
  8.  
  9.     //需要將文件對象傳進去 
  10.     reader := bufio.NewReader(fileObj) 
  11.     for
  12.         //按行讀取 
  13.         row, err := reader.ReadString('\n')//參數是字符,不是字符串 
  14.         if err == io.EOF { 
  15.             break 
  16.         } 
  17.         if err != nil { 
  18.             panic(err) 
  19.         } 
  20.         fmt.Printf("%v",row) 

執行結果

 

讀取整個文件

可能又有人說了,啊,星期八,我感覺還是麻煩,有沒有更簡單的辦法讀取文件,肯定有呀,一次性讀取所有呢?答案是肯定的,此時需要用到ioutil包。

代碼

  1. func main() { 
  2.     //os.Open是只讀模式 
  3.     bytes, err := ioutil.ReadFile("永不退縮.txt"
  4.     if err != nil { 
  5.         panic(err) 
  6.     fmt.Println(string(bytes)) 

執行結果

 

但是這種有個缺點,只能讀取小文件,要是來個10G文件也這樣玩,保證電腦死翹翹!!!

寫入文件

寫入文件的話,我們就需要使用openFile這個方法打開文件

在開始之前呢,先記一下下面幾種模式

  • os.O_WRONLY 只寫
  • os.O_RDONLY 只讀
  • os.O_CREATE 如果文件不存在,則創建文件
  • os.O_RDWR 可讀可寫
  • os.O_TRUNC 清空
  • os.O_APPEND 追加文件

寫入字節和寫入行

代碼

  1. func main() { 
  2.     fileObj, err := os.OpenFile("臨時.txt", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666) 
  3.     if err != nil { 
  4.         panic(err) 
  5.     defer fileObj.Close() 
  6.     w_content := "我是臨時表內容\n" 
  7.     //Write方法需要將字符串轉成字節 
  8.     fileObj.Write([]byte(w_content)) 
  9.     //WriteString直接寫入字符串 
  10.     fileObj.WriteString(w_content) 

執行結果

 

bufio寫文件

代碼

  1. func main() { 
  2.     fileObj, err := os.OpenFile("臨時.txt", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666) 
  3.     if err != nil { 
  4.         panic(err) 
  5.     defer fileObj.Close() 
  6.     w_content := "我是臨時表內容\n" 
  7.     writer := bufio.NewWriter(fileObj) 
  8.     writer.Write([]byte(w_content)) 
  9.     writer.WriteString(w_content) 
  10.     //寫完必須刷入 
  11.     writer.Flush() 

執行結果

 

ioutil寫文件

代碼

  1. func main() { 
  2.     w_content := "我是臨時表內容\n" 
  3.     err := ioutil.WriteFile("臨時.txt", []byte(w_content), 0666) 
  4.     if err != nil { 
  5.         panic(err) 

執行結果

 

拷貝文件

拷貝文件,就是拷貝文件唄,A文件拷貝到B文件中

其實他的底層還是打開倆文件,把A文件內容寫入到B文件中

代碼

  1. func main() { 
  2.     原文件, err := os.Open("永不退縮.txt"
  3.     if err != nil { 
  4.         panic(err) 
  5.     defer 原文件.Close() 
  6.     目標文件, err := os.OpenFile("臨時.txt", os.O_WRONLY|os.O_CREATE, 0666) 
  7.     if err != nil { 
  8.         panic(err) 
  9.     defer 目標文件.Close() 
  10.     //拷貝文件 
  11.     io.Copy(目標文件,原文件) 

執行結果

 

總結

本次章節我們主要學習文件操作的相關知識,主要分為讀取文件和寫入文件

讀取文件都有原生方法讀寫和bufio加強讀寫和ioutil一次性讀寫

推薦大家使用bufio這個包操作文件,帶有緩沖功能,性能更好!!

本文轉載自微信公眾號「Go語言進階學習」,可以通過以下二維碼關注。轉載本文請聯系Go語言進階學習公眾號。

 

責任編輯:武曉燕 來源: Go語言進階學習
相關推薦

2021-01-13 08:40:04

Go語言文件操作

2020-12-23 08:39:11

Go語言基礎技術

2022-02-16 10:03:06

對象接口代碼

2020-11-05 09:58:16

Go語言Map

2020-11-11 10:52:54

Go語言C語言

2020-10-22 08:33:22

Go語言

2022-04-27 10:01:43

切片Go封裝

2020-12-27 10:15:44

Go語言channel管道

2020-10-25 07:33:13

Go語言

2020-12-30 09:04:32

Go語言TCPUDP

2021-10-09 07:10:31

Go語言基礎

2020-10-23 08:38:19

Go語言

2020-12-09 09:59:32

Go語言技術

2021-11-03 10:02:07

Go基礎函數

2020-12-07 05:59:02

語言Go接口

2021-10-30 10:43:04

語言Go函數

2021-02-27 10:20:18

Go語言flag包開發技術

2021-09-29 10:00:07

Go語言基礎

2021-10-13 10:00:52

Go語言基礎

2020-10-22 11:15:47

Go語言變量
點贊
收藏

51CTO技術棧公眾號

欧美日韩一二三| 国产日韩欧美精品一区| 欧美精品久久久久久久久久| 国产51自产区| 黑人巨大精品| 成人免费一区二区三区视频| 国产一区二区三区无遮挡| 中文字字幕在线中文| 成人在线国产| 亚洲福利视频网站| 亚洲色图 在线视频| 特级毛片在线| 国产人久久人人人人爽| 成人三级在线| 青娱乐在线免费视频| 欧美激情日韩| 夜夜嗨av色一区二区不卡| wwwxxxx在线观看| 中文字幕日本一区二区| 亚洲午夜激情网页| 亚洲精品一区二区三| 天天色综合av| 国产精品一色哟哟哟| 日韩女优人人人人射在线视频| 91麻豆精品成人一区二区| 美日韩中文字幕| 精品久久人人做人人爱| 在线观看免费的av| 日韩精品美女| 亚洲国产日产av| 亚洲一区二区在线免费观看| 久久精品a一级国产免视看成人| 国产高清一区日本| 成人激情免费在线| 亚洲av综合一区| 欧美亚洲在线| 97精品久久久| 日本三级欧美三级| 欧美三级网页| 久久99精品久久久久久青青91| 美国美女黄色片| 香蕉视频一区二区三区| 亚洲大胆人体av| wwwww在线观看| 久久伦理中文字幕| 91精品一区二区三区在线观看| 日韩av手机版| 四虎4545www国产精品| 欧美日韩亚洲精品一区二区三区 | 欧美艳星介绍134位艳星| 亚洲国产另类久久精品| 大尺度在线观看| 高清日韩欧美| 亚洲高清在线观看| 波多野结衣先锋影音| 久久视频在线观看| 亚洲精品国产综合区久久久久久久| jjzzjjzz欧美69巨大| av成人资源网| 日韩av有码在线| 黄色在线观看av| 狠狠操综合网| 日日噜噜噜夜夜爽亚洲精品| 国产人与禽zoz0性伦| 91精品啪在线观看国产18| 久久人人爽人人爽爽久久| 紧身裙女教师波多野结衣| 欧美va天堂| 午夜欧美不卡精品aaaaa| 国产成人在线免费观看视频| 国产欧美一级| 国产精品久久久久久网站| 亚洲一级av毛片| 国产精品一区免费视频| 国产精品入口免费| 亚洲欧洲综合在线| 中文字幕电影一区| 黄色网络在线观看| av剧情在线观看| 91久久国产最好的精华液| 国产精品久久久毛片| 精品视频在线一区| 日韩av在线直播| 1024在线看片| 国产精品sm| 欧美又大又粗又长| 怡红院成永久免费人全部视频| 国产一级精品在线| 精品一区日韩成人| 免费看a在线观看| 亚洲影视在线播放| 欧洲熟妇精品视频| 国产亚洲精aa在线看| 精品亚洲国产成av人片传媒| 少妇视频一区二区| 亚洲一区不卡| 91久久精品国产| 日韩电影在线观看完整版| 亚洲婷婷在线视频| 免费午夜视频在线观看| 日韩中文字幕| 亚洲亚裔videos黑人hd| 久久久久久久久久久久久久免费看 | 久久精品99国产| 久久99精品久久久野外观看| 精品亚洲一区二区三区四区五区| 99热99这里只有精品| 国产精品久久久久久模特| 成人福利在线观看| 你懂的在线免费观看| 伊人开心综合网| 人人干人人干人人| 欧美一区二区三区红桃小说| 精品国产一区二区三区久久狼5月| 国产成人一区二区三区影院在线| 久久99精品久久久久久国产越南 | 色av综合在线| av av在线| 五月天久久777| 国产精品99久久久久久白浆小说| 欧美一级一区二区三区| 中文字幕五月欧美| 色悠悠久久综合网| 亚洲盗摄视频| 国产+人+亚洲| 性做久久久久久久久久| 中文字幕欧美日韩一区| av观看免费在线| 精品人人人人| 久久亚洲精品视频| 伊人网视频在线| 国产视频不卡一区| 大陆极品少妇内射aaaaa| 日韩高清一区| 久久久国产视频91| 最好看的日本字幕mv视频大全| 91免费视频网| 成人综合视频在线| 牛牛精品成人免费视频| 久久男人av资源网站| 国产富婆一级全黄大片| 亚洲嫩草精品久久| 一级黄色片国产| 香蕉综合视频| 91丨九色丨国产在线| 欧美成人三区| 911国产精品| 疯狂试爱三2浴室激情视频| 日本欧美韩国一区三区| 亚洲欧美日韩在线综合 | 久久av免费观看| 久色国产在线| 精品国产亚洲一区二区三区在线观看 | 精品人妻一区二区三区麻豆91| 中文字幕色av一区二区三区| 成年人网站av| 欧美色综合网| 国精产品99永久一区一区| 国产美女高潮在线观看| 日韩av在线免费观看一区| 丁香六月婷婷综合| 亚洲国产电影在线观看| 精品国产鲁一鲁一区二区三区| 在线观看国产精品入口| 国产91视觉| 日本黄色免费在线| 亚洲偷欧美偷国内偷| 亚洲视频在线免费播放| 亚洲精品自拍动漫在线| 久久久久亚洲无码| 性欧美暴力猛交另类hd| 亚洲精品高清视频| 精品精品视频| 性欧美亚洲xxxx乳在线观看| 国产剧情在线观看| 911精品国产一区二区在线| 国产性生活网站| 久久女同性恋中文字幕| 97成人在线观看视频| 日韩理论在线| 国产经典一区二区三区 | 国产精品视频自在线| 国产福利视频在线观看| 精品99一区二区| 天堂av免费在线观看| 亚洲美女精品一区| 成人手机在线免费视频| 蜜桃一区二区三区四区| 美女扒开大腿让男人桶| 精品久久久亚洲| 99久久精品无码一区二区毛片 | 91精品一区二区三区久久久久久 | 欧美视频一区二区| 国产在线免费视频| 中文字幕高清不卡| 国产精品麻豆入口| 久久99这里只有精品| av免费观看国产| 久久视频精品| 国内精品久久国产| 999色成人| 日韩免费中文字幕| hd国产人妖ts另类视频| 日韩中文字幕不卡视频| 日本精品久久久久久| 欧美日韩精品一区二区三区| 免费观看一级视频| 国产精品超碰97尤物18| 久久人人妻人人人人妻性色av| 极品美女销魂一区二区三区| 国产无套内射久久久国产| 亚洲最大av| 日日噜噜噜噜夜夜爽亚洲精品| 日韩成人久久| 成人黄色在线播放| 欧洲成人一区| 欧美一级电影免费在线观看| 亚洲资源一区| www.亚洲一区| 91网页在线观看| 亚洲美女性生活视频| 好男人在线视频www| 7777精品伊人久久久大香线蕉超级流畅| 成人h动漫精品一区二区下载| 亚洲国产视频直播| 国产少妇在线观看| 国产精品久久久久9999吃药| 日韩人妻无码精品综合区| av午夜一区麻豆| 欧美性生交xxxxx| 国产成人精品影视| 欧美性猛交xxxx乱大交91| 看片网站欧美日韩| 国产主播中文字幕| 日韩1区2区日韩1区2区| 亚洲 中文字幕 日韩 无码| 午夜一区不卡| 国产日产欧美视频| 亚洲欧美日韩综合国产aⅴ| 黄色免费视频大全| 亚洲激情专区| 亚洲人精品午夜射精日韩| 精品福利电影| 国产97在线 | 亚洲| 99综合精品| 一区二区传媒有限公司| 99精品热视频只有精品10| 欧美啪啪免费视频| 国产亚洲精品久久久久婷婷瑜伽| 人妻久久久一区二区三区| 在线观看日韩av电影| 鲁一鲁一鲁一鲁一色| 亚洲日本免费| 精品一区二区中文字幕| 日韩国产欧美在线视频| 国内自拍视频网| 精品一区二区三区在线播放| 国产精品999.| 成人久久视频在线观看| 小毛片在线观看| 久久久久久麻豆| 懂色av粉嫩av浪潮av| 中文字幕日韩一区二区| 久久机热这里只有精品| 香蕉久久一区二区不卡无毒影院| 天天操天天爽天天干| 欧美性猛交丰臀xxxxx网站| 亚洲精品久久久久久久蜜桃| 欧美日韩亚洲丝袜制服| av综合在线观看| 亚洲大胆人体av| 国产视频网址在线| 精品国产拍在线观看| 18aaaa精品欧美大片h| 国产ts一区二区| 亚州精品国产| 国外成人免费视频| 女人丝袜激情亚洲| 国产又粗又硬又长| 日韩一级欧洲| 色综合天天色综合| 国产91精品一区二区麻豆网站| 懂色av粉嫩av蜜乳av| 国产精品妹子av| 久草中文在线视频| 91国产精品成人| 性生活三级视频| 国产亚洲精品美女久久久| 性爱视频在线播放| 日韩av不卡电影| 精品国产乱码一区二区三区| 精品亚洲欧美日韩| 亚洲激情久久| 黄在线观看网站| 国产精品综合一区二区| 播金莲一级淫片aaaaaaa| √…a在线天堂一区| 日韩在线视频免费播放| 91精品麻豆日日躁夜夜躁| 亚州精品国产精品乱码不99按摩| 色综合伊人色综合网站| www视频在线观看| 成人有码在线播放| 视频一区欧美| 亚洲精品无码国产| 国内精品在线播放| 中文字幕成人动漫| 亚洲国产精品天堂| 国产手机精品视频| 亚洲人在线视频| 成人bbav| 97av自拍| 亚洲最大黄网| 国产三级国产精品国产专区50| 99re在线精品| 国产精选第一页| 欧美福利视频一区| 91在线品视觉盛宴免费| 欧美亚洲另类激情另类| 动漫av一区| 欧美做受777cos| 久久www免费人成看片高清| 久久久久久久久久久久| 欧美日韩激情小视频| www天堂在线| 久久久av一区| 欧美午夜三级| 亚州欧美一区三区三区在线 | 欧洲成人在线视频| 国产精品网址| 成人免费看片'免费看| 国产在线不卡一区| 久草手机视频在线观看| 欧美视频在线不卡| 91在线视频| 国产伦精品免费视频| 精品一区二区三区在线| 成人亚洲视频在线观看| 国产午夜亚洲精品不卡 | 欧美刺激脚交jootjob| 国产午夜精品久久久久免费视| 国产精品自产拍在线观| 精品久久影院| 一本色道久久亚洲综合精品蜜桃| 国产欧美精品一区二区色综合| www.五月婷婷.com| 在线视频免费一区二区| 久久福利在线| 一区二区在线观| 久久99日本精品| 免费在线观看h片| 日韩三级av在线播放| 男女在线视频| 精品国产91亚洲一区二区三区www| 国产精品五区| 日本一级免费视频| 欧美私人免费视频| jizz性欧美| 国产一区在线免费观看| 国产精品外国| 国产综合精品久久久久成人av | 人人妻人人澡人人爽精品日本| 午夜精品久久17c| 欧美人与物videos另类xxxxx| 日日摸天天爽天天爽视频| 中文字幕免费在线观看视频一区| 91超薄丝袜肉丝一区二区| 欧美不卡视频一区发布| 高潮按摩久久久久久av免费| 丁香啪啪综合成人亚洲| 日本一区二区三区免费乱视频| 91禁在线观看| 久久久久久成人精品| 久久av综合| 91精品国产三级| 五月婷婷另类国产| av影片在线看| 成人xxxxx色| 视频在线在亚洲| 国产探花在线免费观看| 日韩精品在线看| 国产精品一区二区免费福利视频| 中国一级大黄大黄大色毛片| 91一区二区三区在线观看| 夜夜狠狠擅视频| 97av在线影院| 97精品国产| 在线观看国产免费视频| 欧美日韩亚洲国产综合| 2020av在线| 一区二区三区四区国产| 99在线热播精品免费| 伊人精品一区二区三区| 午夜免费在线观看精品视频| 99久久婷婷这里只有精品| 欧美 日本 国产| 日韩一区二区免费在线观看| 美女福利一区二区| 91视频 - 88av| 中文字幕中文字幕中文字幕亚洲无线|