今天我們講解的是golang標準庫里邊的io/ioutil包–也就是package io/ioutil
1.ioutil.ReadDir(dirname string)這個函數的原型是這樣的 func ReadDir(dirname string) ([]os.FileInfo, error)
不難看出輸入的是dirname類型是string類型的 譬如”d:/go”,然會是一個FileInfo的切片,其中FileInfo的結構是這樣的
func main() {
dir_list, e := ioutil.ReadDir("d:/test")
if e != nil {
fmt.Println("read dir error")
return
}
for i, v := range dir_list {
fmt.Println(i, "=", v.Name())
fmt.Println(v.Name(), "的權限是:", v.Mode())
fmt.Println(v.Name(), "文件大小:", v.Size())
fmt.Println(v.Name(), "創建時間", v.ModTime())
fmt.Println(v.Name(), "系統信息", v.Sys())
if v.IsDir() == true {
fmt.Println(v.Name(), "是目錄")
}
}
}
func main() {
data, err := ioutil.ReadFile("D:/test/widua.go")
if err != nil {
fmt.Println("read error")
os.Exit(1)
}
fmt.Println(string(data))
}
func main() {
reader := strings.NewReader("hello word widuu") //返回*strings.Reader
fmt.Println(reflect.TypeOf(reader))
data, _ := ioutil.ReadAll(reader)
fmt.Println(string(data))
}
func main() {
reader := strings.NewReader("hello word widuu") //返回*strings.Reader
r := ioutil.NopCloser(reader)
defer r.Close()
fmt.Println(reflect.TypeOf(reader))
data, _ := ioutil.ReadAll(reader)
fmt.Println(string(data))
}
func main() {
dir, err := ioutil.TempDir("D:/test", "tmp")
if err != nil {
fmt.Println("常見臨時目錄失敗")
return
}
fmt.Println(dir) //返回的是D:/test/tmp846626247 就是前邊的prefix+隨機數
}
func main() {
file, error := ioutil.TempFile("D:/test", "tmp")
defer file.Close()
if error != nil {
fmt.Println("創建文件失敗")
return
}
file.WriteString("Hello word") //利用file指針的WriteString()詳情見os.WriteString()
filedata, _ := ioutil.ReadFile(file.Name())
fmt.Println(string(filedata))
}
新聞熱點
疑難解答