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

首頁 > 編程 > Golang > 正文

舉例詳解Go語言中os庫的常用函數用法

2020-04-01 19:13:21
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Go語言中os庫的常用函數用法,os函數的使用是Go語言入門學習中的基礎知識,需要的朋友可以參考下
 

(f *File).Name()這個函數是返回文件的名稱,函數原型func (f *File) Name() string要文件的指針操作,返回字符串,感覺比較雞助的方法底層實現

復制代碼代碼如下:

 func (f *File) Name() string { return f.name }
 import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.Open("1.go")
 fmt.Println(f.Name()) //輸出1.go
}


(f *File).Read()這個是函數的指針來操作的,屬于*FIlE的method,函數原型func (f *File) Read(b []byte) (n int, err error)輸入讀取的字節數,返回字節的長度和error信息
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 b := make([]byte, 100) //設置讀取的字節數
 f, _ := os.Open("11.go")
 n, _ := f.Read(b)
 fmt.Println(n) 
 fmt.Println(string(b[:n])) //輸出內容 為什么是n而不直接輸入100呢?底層這樣實現的
 /*
  n, e := f.read(b)
     if n < 0 {
       n = 0
     }
  if n == 0 && len(b) > 0 && e == nil {
     return 0, io.EOF
    }
   */
   //所以字節不足100就讀取n
}


(f *File).ReadAt()這個函數的原型是func (f *File) ReadAt(b []byte, off int64) (n int, err error)加入了下標,可以自定義讀取多少
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.Open("11.go")
 b := make([]byte, 20)
 n, _ := f.ReadAt(b, 15)
 fmt.Println(n)
 fmt.Println(string(b[:n]))
}


(f *File).Readdir()函數原型func (f *File) Readdir(n int) (fi []FileInfo, err error),我們要打開一個文件夾,然后設置讀取文件夾文件的個數,返回的是文件的fileinfo信息
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, err := os.Open("src") //打開一個目錄
 if err != nil {
  fmt.Println(err)
 }
 defer f.Close()
 ff, _ := f.Readdir(10)    //設置讀取的數量 <=0是讀取所有的文件 返回的[]fileinfo
 for i, fi := range ff {
  fmt.Printf("filename %d: %+v/n", i, fi.Name())  //我們輸出文件的名稱
 }
}


(f *File).Readdirnames這個函數的作用是讀取目錄內的文件名,其實上一個函數我們已經實現了這個函數的功能,函數的原型func (f *File) Readdirnames(n int) (names []string, err error),跟上邊一下只不過返回的是文件名 []string的slice
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.Open("bin")
 names, err := f.Readdirnames(0)
 if err != nil {
  fmt.Println(err)
 }
 for i, name := range names {
  fmt.Printf("filename %d: %s/n", i, name)
 }
}


(f *File).Seek()這個函數大家一看就懂了,就是偏移指針的地址,函數的原型是func (f *File) Seek(offset int64, whence int) (ret int64, err error) 其中offset是文件指針的位置 whence為0時代表相對文件開始的位置,1代表相對當前位置,2代表相對文件結尾的位置 ret返回的是現在指針的位置
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 b := make([]byte, 10)
 f, _ := os.Open("1.go")
 defer f.Close()
 f.Seek(1, 0)    //相當于開始位置偏移1
 n, _ := f.Read(b)
 fmt.Println(string(b[:n]))  //原字符package 輸出ackage
}


(f *File) Write像文件中寫入內容,函數原型func (f *File) Write(b []byte) (n int, err error)返回的是n寫入的字節數
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.OpenFile("1.go", os.O_RDWR|os.O_APPEND, 0755) //以追加和讀寫的方式去打開文件
 n, _ := f.Write([]byte("helloword"))                     //我們寫入hellword
 fmt.Println(n)                                           //打印寫入的字節數
 b := make([]byte, 20)
 f.Seek(0, 0)            //指針返回到0
 data, _ := f.Read(b)
 fmt.Println(string(b[:data]))        //輸出了packagehelloword
}


(f *File) WriteAt()在偏移位置多少的地方寫入,函數原型是func (f *File) WriteAt(b []byte, off int64) (n int, err error)返回值是一樣的
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.OpenFile("1.go", os.O_RDWR, os.ModePerm)
 f.WriteAt([]byte("widuu"), 10) //在偏移10的地方寫入
 b := make([]byte, 20)
 d, _ := f.ReadAt(b, 10)    //偏移10的地方開始讀取
 fmt.Println(string(b[:d])) //widuudhellowordhello
}


(f *File).WriteString()這個很簡單了,寫入字符串函數原型func (f *File) WriteString(s string) (ret int, err error)返回值一樣的了
復制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.OpenFile("2.go", os.O_RDWR, os.ModePerm)
 n, _ := f.WriteString("hello word widuu") //寫入字符串
 fmt.Println(n)
 b := make([]byte, n)
 f.Seek(0, 0)    //一定要把偏移地址歸0否則就一直在寫入的結尾處
 c, _ := f.Read(b)
 fmt.Println(string(b[:c])) //返回hello word widuu
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品欧美激情精品一区| 精品视频在线观看日韩| 国产精品露脸av在线| 国产精品视频播放| 欧美日韩免费网站| 成人性教育视频在线观看| 日韩中文字幕精品视频| 国产精品一区二区三区毛片淫片| 欧美成人免费全部| 中文字幕视频在线免费欧美日韩综合在线看| 78色国产精品| 中文字幕免费精品一区| 欧美激情区在线播放| 成人两性免费视频| 亚洲精品美女久久久| 欧美精品手机在线| 狠狠躁夜夜躁人人爽天天天天97| 国产精品麻豆va在线播放| 美女久久久久久久久久久| 精品亚洲一区二区三区四区五区| 国产69久久精品成人看| 一区二区三区天堂av| 国产精品视频一区国模私拍| 在线观看日韩专区| 日韩中文在线观看| 亚洲福利精品在线| 欧美一性一乱一交一视频| 亚洲第一色在线| 欧美性猛交xxxx乱大交| 久久久精品国产| 亚洲成人久久久久| 欧美在线免费观看| 国产欧美日韩最新| 亚洲天堂av高清| 欧美高清视频一区二区| 久久久久久久激情视频| www欧美xxxx| 中文字幕精品视频| 国产69久久精品成人看| 久久婷婷国产麻豆91天堂| 久久久久久91香蕉国产| 91视频国产高清| 亚洲综合日韩中文字幕v在线| 久久精品亚洲热| 亚洲天堂av在线免费| 欧美大片免费观看在线观看网站推荐| 久久精品国产2020观看福利| 亚洲精品美女在线观看| 国产精品久久久久999| 久热精品视频在线观看| 久久噜噜噜精品国产亚洲综合| 国产精品劲爆视频| 成人黄色在线观看| 日韩中文理论片| 久久综合伊人77777蜜臀| 亚洲香蕉伊综合在人在线视看| 日韩精品久久久久久久玫瑰园| 久国内精品在线| 国产va免费精品高清在线| 欧美日韩亚洲一区二区三区| 日本高清+成人网在线观看| 欧美日本中文字幕| 久久免费高清视频| 亚洲最大的网站| 亚洲福利视频网站| 在线观看亚洲视频| 日本久久久a级免费| 国产精国产精品| 色阁综合伊人av| 久久久精品在线| 久久亚洲欧美日韩精品专区| 国产精品亚洲аv天堂网| 精品日韩中文字幕| 色偷偷av亚洲男人的天堂| 久久视频在线视频| 国语自产精品视频在线看一大j8| 成人午夜激情免费视频| 久久夜色精品国产亚洲aⅴ| 欧美午夜片欧美片在线观看| 亚洲一区二区三区视频| 国产精品私拍pans大尺度在线| 夜夜嗨av色综合久久久综合网| 日日骚av一区| 北条麻妃99精品青青久久| 国内精品一区二区三区| 九九精品在线视频| 亚洲a级在线播放观看| 久久精品欧美视频| 国产精品视频专区| 欧美另类在线播放| 欧美激情一二区| 亚洲国产精品电影在线观看| 久久天天躁狠狠躁夜夜av| 色婷婷久久av| 欧美日韩亚洲视频一区| 欧美日本啪啪无遮挡网站| 国产午夜精品全部视频在线播放| 最新的欧美黄色| 国产精品久久久久久久一区探花| 91国产高清在线| 国产成人一区二区在线| 欧美视频在线观看 亚洲欧| 久久久精品亚洲| 精品国产999| 中文精品99久久国产香蕉| 精品一区二区三区四区在线| 精品欧美激情精品一区| 欧美日韩人人澡狠狠躁视频| 伊人一区二区三区久久精品| 国产欧美婷婷中文| 成人精品aaaa网站| 97精品在线视频| 国产在线精品成人一区二区三区| 国产精品毛片a∨一区二区三区|国| 日韩av最新在线观看| 亚洲国产中文字幕在线观看| 欧美国产日本高清在线| 国产精品com| 日韩欧美黄色动漫| 欧洲精品久久久| 日韩精品免费在线视频| 91黑丝在线观看| 91国产精品电影| 91精品国产高清自在线看超| xvideos亚洲人网站| 国产剧情久久久久久| 国产专区精品视频| 日韩精品视频在线观看免费| 精品中文字幕视频| 久久色免费在线视频| 亚洲深夜福利视频| 77777少妇光屁股久久一区| 国产在线观看精品| 国产精品欧美一区二区三区奶水| 51色欧美片视频在线观看| 亚洲精选一区二区| 成人黄色免费在线观看| 亚洲一区二区国产| 亚洲美女免费精品视频在线观看| 高清一区二区三区日本久| 日韩在线观看免费| 一本色道久久88亚洲综合88| 美女扒开尿口让男人操亚洲视频网站| 国产精品成人久久久久| 欧美专区在线视频| 欧美视频免费在线观看| 日本精品视频在线| 国产一区视频在线播放| 亚洲一区中文字幕在线观看| 亚洲综合大片69999| 亚洲欧洲日产国码av系列天堂| 国产精品成人一区二区三区吃奶| 久久亚洲电影天堂| 国产精品久久久久久久一区探花| 亚洲人成在线一二| 亚洲精品午夜精品| 日韩欧美精品中文字幕| 欧美黑人xxxⅹ高潮交| 97视频在线观看成人| 日韩小视频在线| 欧美二区在线播放| 亚洲一区中文字幕在线观看| 国产成人精品日本亚洲专区61| 日韩在线激情视频|