ioutil 包是 io 包的子包,它提供了一些基本 IO 操作的函数.导入方式为 import "io/ioutil"
常用函数
以下是 ioutil 包中常用的函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| func ReadAll(r io.Reader) ([]byte, error)
func ReadDir(dirname string) ([]os.FileInfo, error)
func ReadFile(filename string) ([]byte, error)
func TempDir(dir, prefix string) (name string, err error)
func TempFile(dir, pattern string) (f *os.File, err error)
func WriteFile(filename string, data []byte, perm os.FileMode) error
|
示例
拷贝文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import ( "fmt" "io/ioutil" )
func copyFileExample(src, dest string) (err error) { data, err := ioutil.ReadFile(src) err = ioutil.WriteFile(dest, data, 0) return }
func main() { err := copyFileExample("src", "dest") if err != nil { fmt.Println(err) } }
|
读取指定目录及其子目录所有文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import ( "fmt" "io/ioutil" "os" "strings" )
func findFile(dir string) { PathSeparator := string(os.PathSeparator) fileInfos, err := ioutil.ReadDir(dir) if err != nil { return } for _, fileInfo := range fileInfos { if fileInfo.IsDir() { dirname := strings.Join([]string{dir, fileInfo.Name()}, PathSeparator) findFile(dirname) } else { fmt.Printf("%v%v%v\n", dir, PathSeparator, fileInfo.Name()) } }
} func main() { findFile(".") }
|