亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

go實現文件的創建、刪除與讀取示例代碼

2020-04-01 18:49:53
字體:
來源:轉載
供稿:網友

文件目錄的創建和刪除

package mainimport( "fmt" "os")func main(){ //創建目錄和權限 os.Mkdir("./benben",0777) //創建多級目錄和設置權限 os.MkdirAll("./benben/test",0777) //刪除目錄 err:=os.Remove("./benben") if err!=nil{ fmt.Println(err) } //刪除多級目錄 os.RemoveAll("./benben")}

文件的創建

package mainimport ( "os" "fmt")func main(){ //文件的創建,Create會根據傳入的文件名創建文件,默認權限是0666 file,err:=os.Create("a.txt") if err!=nil{ fmt.Println(err) } defer file.Close()}

文件的打開和關閉

文件的打開和關閉相關函數在文件的讀取和寫入示例中演示。

文件的讀取和寫入

文件的讀取有以下幾種方式:

方法一: 利用 os.Open() 和 ioutil.ReadAll() 兩個方法

package mainfunc main(){ //打開文件 file,err:=os.Open("a.txt") if err !=nil { fmt.Println(err) } //文件的關閉 defer file.Close() //文件讀取方式一,通過os.Open返回一個文件句柄,然后利用它進行讀取 body,err:=ioutil.ReadAll(file) if err !=nil { fmt.Println(err) } fmt.Println(string(body))}

方法二:利用 ioutil.ReadFile() 方法來實現讀取操作。

package mainfunc main(){ body,err:=ioutil.ReadFile("a.txt") if err!=nil { fmt.Println(err) } fmt.Println(string(body))}

ReadFile函數直接將方式一中的三個步驟分裝在了一起,下面是實現的具體代碼。

func ReadFile(filename string)([]byte,error){ //打開文件 f,err:=os.Open(filename) if err!=nil { return nil,err } //延遲關閉文件 defer f.Close() //設置讀取文件的字節數 var n int64 //Stat()方法會返回描述指定文件的信息結構FileInfo if fi,err:=f.Stat();err==nil{ if size:=fi.Size();size<1e9{ n=size } } //返回讀取的文件內容 return readAll(f,n+bytes.MinRead)}

FileInfo具有以下方法:

Name() string //返回文件名Size() int64 //返回文件的字節長度Mode() FileMode //文件模式位ModTime() time.Time //修改時間IsDir() bool //是否是目錄Sys() interface{} //底層數據源

方法三: 帶緩存的讀取

package mainfunc main(){ file,err:=os.Open("a.txt") if err!=nil { fmt.Println(err) } defer file.Close() //創建一個新的io.Reader,它實現了Read方法 reader:=bufio.NewReader(file) //設置讀取的長度 buf:=make([]byte,1024) //讀取文件 _,err=reader.Read(buf) if err!=nil { fmt.Println(err) } fmt.Println(string(buf))}

文件的寫入

方法一: 利用ioutil. Write File()

package mainimport ( "io/ioutil")func main(){ content:=[]byte("Go is an open source programming language that makes is easy to build simple,reliable,and efficient software) err:=ioutil.WriteFile("a.txt",content,0777) if err!=nil { fmt.Println(err) } fmt.Println("write file successful")}

看看WriteFile具體是如何實現文件的寫入的。

func WriteFile(filename string,data []byte,perm os.FileMode) error{ //打開文件 f,err:=os.OpenFile(filename,os.O_WRONLY|os.O_CREATE|os.O_TRUNC,perm) if err!=nil { return err } //文件的寫入 n,err:=f.Write(data) if err==nil && n<len(data){ err=io.ErrShortWrite } //關閉文件 if err1:=f.Close();err==nil{ err=err1 } return err}

方法二:打開文件,然后利用Write()進行文件讀寫, 注意 :此時不能用os.Open()打開,而要用os.OpenFile()打開。 

package mainfunc main(){ file,err:=os.OpenFile("a.txt",os.O_RDWR|os.O_CREATE,0777) if err!=nil { fmt.Println(err) } defer file.Close() content:=[]byte("Go is an open source programing language that makes it easy to build simple,reliable,and efficient software") _,err=file.Write(content) if err!=nil { fmt.Println(err) } fmt.Println("write file successful")}

方法三:通過有緩沖操作的bufio提供的包進行操作

如果使用Write方法實現寫操作,此時就還需要使用Flush()方法

package mainfunc main(){ file,err:=os.OpenFile("a.txt", os.O_CREATE|os.O_RDWR, 0666) if err!=nil { fmt.Println(err) } defer file.Close() content:=[]byte("Go is an open source programing language that makes it easy to build simple,reliable,and efficient software") //使用NewWriter方法返回的io.Writer緩沖默認大小為4096,也可以使用NewWriterSize方法設置緩存的大小 newWriter:=bufio.NewWriter(file) //將文件寫入緩存 if _,err =newWriter.Write(content);err!=nil { fmt.Println(err) } //從緩存寫入到文件中 if err= newWriter.Flush(); err!=nil { fmt.Println(err) } fmt.Println("write file successful")}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩另类在线| 亚洲精品福利资源站| 国产成人精彩在线视频九色| 成人有码在线播放| 伊人伊成久久人综合网小说| 成人国产在线视频| 一区二区三区黄色| 日韩欧美aⅴ综合网站发布| 国产成人欧美在线观看| 日韩在线免费高清视频| 久久久999国产| 成人精品久久一区二区三区| 亚洲国产精品久久久久久| 91精品国产99久久久久久| 欧美精品电影在线| 97视频国产在线| 91国内精品久久| 亚洲丝袜在线视频| 欧美激情精品久久久久久久变态| 91美女福利视频高清| 久久99久国产精品黄毛片入口| 最新69国产成人精品视频免费| 欧美激情videos| 亚洲精品www久久久久久广东| 福利微拍一区二区| 亚洲第一免费播放区| 成人午夜黄色影院| 欧美日韩中文字幕日韩欧美| 中文字幕日韩精品在线| 久久青草精品视频免费观看| 日韩网站在线观看| 91国自产精品中文字幕亚洲| 日韩高清欧美高清| 欧美大人香蕉在线| 国产精品久久久久av| 高清视频欧美一级| 欧美一区二粉嫩精品国产一线天| 亚洲品质视频自拍网| 永久免费精品影视网站| 亚洲天堂男人天堂女人天堂| 日韩经典中文字幕在线观看| 久久精品一区中文字幕| 91免费观看网站| 欧美日韩成人网| 亚洲第一精品福利| 午夜精品久久久久久久久久久久| 一区二区欧美亚洲| 日本一欧美一欧美一亚洲视频| 精品毛片三在线观看| 国产精品黄视频| 欧美精品18videos性欧| 亚洲男人第一av网站| 日韩精品福利网站| 欧美激情第99页| 亚洲国产精品yw在线观看| 97香蕉超级碰碰久久免费软件| 亚洲综合自拍一区| 日韩欧美成人网| 蜜臀久久99精品久久久无需会员| 精品久久久久久中文字幕大豆网| 色老头一区二区三区在线观看| 精品国产31久久久久久| 欧美大码xxxx| 国产成人精品免高潮在线观看| 久久久久久久久中文字幕| 日韩精品亚洲精品| 91精品久久久久久久久久入口| 欧美日韩在线看| 国产精品露脸自拍| 欧美劲爆第一页| 欧美专区在线观看| 亚洲精品乱码久久久久久金桔影视| 久久精彩免费视频| 欧美野外猛男的大粗鳮| 国产mv久久久| 国产精品久久久一区| 91精品国产777在线观看| 51午夜精品视频| 97精品国产97久久久久久| 国产一区二区动漫| 欧美专区中文字幕| 91免费看片网站| 欧美成人激情视频免费观看| 这里只有精品视频在线| 欧美怡红院视频一区二区三区| 国产精品久久久91| 中文字幕视频一区二区在线有码| 狠狠躁夜夜躁久久躁别揉| 久久久免费在线观看| 日韩成人av在线| 亚洲一级黄色av| 亚洲伊人成综合成人网| 国产拍精品一二三| 中文国产亚洲喷潮| 97在线精品国自产拍中文| 中文字幕精品www乱入免费视频| 亚洲精品一区二区三区婷婷月| 亚洲xxxxx| 国产精品久久视频| 久久久久一本一区二区青青蜜月| 国产精品91一区| 亚洲欧美日韩精品| 欧美日本高清视频| 精品视频一区在线视频| 日韩精品中文字幕在线观看| 日韩精品中文在线观看| 欧美精品久久一区二区| 国产亚洲欧美日韩精品| 亚洲一区二区福利| 亚洲最大av在线| 国产精品热视频| 国产精品久久久久久久午夜| 久久久久久久激情视频| 亚洲国产精品视频在线观看| 午夜免费在线观看精品视频| 色偷偷亚洲男人天堂| 91精品久久久久久久久久| 亚洲人成绝费网站色www| 久久久中精品2020中文| 永久免费毛片在线播放不卡| 日韩女优在线播放| 欧美日韩美女在线| 日韩精品中文字幕久久臀| 91精品国产99| 国产精品久久久久久婷婷天堂| 精品国产一区av| 久久精品国产99国产精品澳门| 久久亚洲国产精品成人av秋霞| 欧美一区深夜视频| 国产综合视频在线观看| 久久久久久国产三级电影| 午夜精品在线视频| 成人激情在线观看| 亚洲人成在线一二| 日韩人体视频一二区| 国产精品成人一区二区| 欧美中文在线视频| 欧美成人在线网站| 亚洲欧洲免费视频| 午夜精品美女自拍福到在线| 97在线精品视频| 狠狠做深爱婷婷久久综合一区| 久久亚洲精品小早川怜子66| 亚洲欧美日韩天堂一区二区| 久久久国产精彩视频美女艺术照福利| 黄色精品在线看| 91精品国产91久久久久久不卡| 91天堂在线视频| 久久精品成人欧美大片| 欧美亚洲成人精品| 久久手机精品视频| 欧美xxxx18性欧美| 国产精品欧美日韩久久| 国产日韩视频在线观看| 国产精品色视频| 成人a视频在线观看| 欧美日韩中文字幕日韩欧美| 黑人精品xxx一区| 国产亚洲人成a一在线v站| 在线视频亚洲欧美| 欧美性猛交xxxx免费看漫画| 日本一欧美一欧美一亚洲视频| 亚洲成年人在线播放| 91香蕉嫩草神马影院在线观看|