一. ioutil包

  • ioutil包下提供了对文件读写的工具函数,通过这些函数快速实现文件的读写操作
  • ioutil包下提供的函数比较少,但是都是很方便使用的函数
    1. func NopCloser(r io.Reader) io.ReadCloser
    2. func ReadAll(r io.Reader) ([]byte, error)
    3. func ReadFile(filename string) ([]byte, error)
    4. func WriteFile(filename string, data []byte, perm os.FileMode) error
    5. func ReadDir(dirname string) ([]os.FileInfo, error)
    6. func TempDir(dir, prefix string) (name string, err error)
    7. func TempFile(dir, prefix string) (f *os.File, err error)

二.代码演示

  • 打开完文件后可以使用ReadAll把文件中所有内容都读取到

    1. f, err := os.Open("D:/go.txt")
    2. defer f.Close()
    3. if err != nil {
    4. fmt.Println(err)
    5. return
    6. }
    7. b, err := ioutil.ReadAll(f)
    8. if err != nil {
    9. fmt.Println(err)
    10. return
    11. }
    12. fmt.Println("文件中内容:\n", string(b))
  • 也可以直接读取文件中内容

    1. b, err := ioutil.ReadFile("D:/go.txt")
    2. if err != nil {
    3. fmt.Println(err)
    4. return
    5. }
    6. fmt.Println(string(b))
  • 写文件也很简单,直接使用WriteFile函数即可,但是源码中已经规定此文件只能是可写状态,且不是尾加数据

    1. err := ioutil.WriteFile("D:/abc.txt", []byte("内容123123"), 0666)
    2. if err != nil {
    3. fmt.Println(err)
    4. return
    5. }
    6. fmt.Println("数据写入成功")
  • 还提供了快速获取某个文件夹中所有文件信息的函数

    1. fs,_:=ioutil.ReadDir("D:/")
    2. for _,n := range fs {
    3. fmt.Println(n.Name())
    4. }