欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Go語言中怎么獲取文件的大小

本篇文章為大家展示了Go語言中怎么獲取文件的大小,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)建站堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、電商網(wǎng)站開發(fā),小程序設(shè)計(jì),軟件按需設(shè)計(jì)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。

Read字節(jié)方式

第一種,是最直觀會(huì)想到的,也就是打開文件,把文件讀取一遍。

func main() {     file,err:=os.Open("water")     if err ==nil {         sum := 0         buf:=make([]byte,2014)         for  {             n,err:=file.Read(buf)             sum+=n             if err==io.EOF {                 break             }         }         fmt.Println("file size is ",sum)     } }

這種方式需要打開文件,通過for循環(huán)讀取文件的字節(jié)內(nèi)容,然后算出文件的大小,這樣時(shí)也是最不能用的辦法,因?yàn)樾实?,代碼量大。

ioutil方式

上面的代碼比較啰嗦,這時(shí)候我們可能想到了使用ioutil包的ReadFile來代替,直接獲得文件的內(nèi)容,進(jìn)而計(jì)算出文件的大小。

func main() {     content,err:=ioutil.ReadFile("water")     if err == nil {         fmt.Println("file size is ",len(content))     } }

通過ioutil.ReadFile函數(shù),我們?nèi)写a就可以搞定,的確方便很多,但是效率慢的問題依然,存在,如果是個(gè)很大的文件呢?

Stat方法

繼續(xù)再進(jìn)一步,我們不讀取文件的內(nèi)容來計(jì)算了,我們通過文件的信息

func main() {     file,err:=os.Open("water")      if err == nil {         fi,_:=file.Stat()         fmt.Println("file size is ",fi.Size())     } }

這種方式不會(huì)再讀取文件的內(nèi)容,而是通過Stat方法直接獲取,速度會(huì)非??欤绕鋵?duì)于大文件尤其有用。但是它還不是我們今天要講的終極辦法,因?yàn)樗€是會(huì)打開文件,會(huì)占用它。

終極方案

好了,我們的終極方案終于要登場了,他的代碼也非常簡單。

func main() {     fi,err:=os.Stat("water")     if err ==nil {         fmt.Println("file size is ",fi.Size(),err)     } }

是的,也只需要三行代碼即可實(shí)現(xiàn),這里使用的是os.Stat,通過他可以獲得文件的元數(shù)據(jù)信息,現(xiàn)在我們看看它能獲取到哪些信息。

獲取文件信息

通過os.Stat方法,我們可以獲取文件的信息,比如文件大小、名字等。

func main() {     fi,err:=os.Stat("water")     if err ==nil {         fmt.Println("name:",fi.Name())         fmt.Println("size:",fi.Size())         fmt.Println("is dir:",fi.IsDir())         fmt.Println("mode::",fi.Mode())         fmt.Println("modTime:",fi.ModTime())     } }

運(yùn)行這段代碼看下結(jié)果:

name: water size: 403 is dir: false mode:: -rw-r--r-- modTime: 2018-05-06 18:52:07 +0800 CST

以上就是可以獲取到的文件信息,還包括判斷是否是目錄,權(quán)限模式和修改時(shí)間。所以我們對(duì)于文件的信息獲取要使用os.Stat函數(shù),它可以在不打開文件的情況下,高效獲取文件信息。

判斷文件是否存在

os.Stat函數(shù)有兩個(gè)返回值,一個(gè)是文件信息,一個(gè)是err,通過err我們可以判斷文件是否存在。

首先,err==nil的時(shí)候,文件肯定是存在的;其次err!=nil的時(shí)候也不代表不存在,這時(shí)候我們就需要進(jìn)行嚴(yán)密的判斷。

func main() {     _,err:=os.Stat(".")     if err ==nil {         fmt.Println("file exist")     }else if os.IsNotExist(err){         fmt.Println("file not exist")     }else{         fmt.Println(err)     } }

通過os.IsNotExist來判斷一個(gè)文件不存在。最后else的可能性比較少,這個(gè)時(shí)候可以看下具體的錯(cuò)誤是什么,再根據(jù)錯(cuò)誤來判斷文件是否存在。

上述內(nèi)容就是Go語言中怎么獲取文件的大小,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:Go語言中怎么獲取文件的大小
文章鏈接:http://aaarwkj.com/article8/godcip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、定制開發(fā)、商城網(wǎng)站、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
91香蕉伊人综合久久麻豆| 蜜臀91精品视频在线观看| 人妻丝袜中文字幕在线| 亚洲一级香蕉视频东京热| 日韩电影在线一本二本三本| 蜜桃网站视频免费观看| 极品女神福利视频久久| 国产精品亚洲在线视频| 日韩欧美国产精品加勒比| 亚洲欧洲日本在线天堂| 国产精品久久99粉嫩| 97在线观看视频在线观看| 91久久精品人妻一区二区| 一区二区三区日韩欧美在线| 国产成人久久精品二区三区| 精品亚洲一区二区三区| 中文字幕人妻久久精品一区| 91老熟女露脸大合集| 国产精品亚洲视频欧美视频| 国产精品主播自拍视频| 美女诱惑丝袜国产国产av丝袜| 亚洲av香蕉综合一区| 精品国产乱码久久蜜桃| 日韩人妻精品中文字幕专区不卡| 国产精品色网在线播放| 亚洲免费av一区二区| 亚洲av香蕉一区二区| 欧美日韩国产一下老妇| 日本亚洲精品一区二区三| 国产精品毛片av在线| 久久久久国产综合精品| 91麻豆精品国产91久5久久| 欧美另类亚洲综合久青草| 国产剧情av在线播放| 久久偷拍精品视频久久| 国产亚洲综合区成人国产| 国产一区二区三区精品久久| 亚洲成人久久久久久久| 日韩中文字幕久久中文字幕| 日韩欧美中文字幕一区二区| 一二三四在线观看日本资讯|