Go语言编程基础:文件操作

95 阅读1分钟
跟文件有关的函数,方法都在os包中。
其中的函数open打开一个文件用于读取。如果操作成功,返回的文件
对象的方法可用于读取数据。
func Open(name string) (file *File, err error)

方法close关闭文件,使文件不能用于读写。

示例:
package main

import (
	"fmt"
	"os"
)

func main() {
	file, err := os.Open("path")
	if err != nil {
		fmt.Println("open file err = ", err)
	}

	fmt.Printf("file = %v", file)

	err = file.Close()
	if err != nil {
		fmt.Println("close file err =", err)
	}

}

示例:
package main

import (

    "fmt"
    "os"
    "bufio"
    "io"

)
func main() {

    //打开文件
    file , err := os.Open("d:/test.txt")
    if err != nil {
        fmt.Println("open file err=", err)

    }

    //当函数退出时,要及时的关闭 file
    defer file.Close() //要及时关闭 file 句柄,否则会有内存泄漏.

    // 创建一个 *Reader ,是带缓冲的

    /*

    const (

        defaultBufSize = 4096 //默认的缓冲区为 4096

    )

    */

    reader := bufio.NewReader(file)

    //循环的读取文件的内容

    for {
        str, err := reader.ReadString('\n') // 读到一个换行就结束
        if err == io.EOF { // io.EOF 表示文件的末尾
            break
        }
        //输出内容
        fmt.Print(str)

    }

    fmt.Println("文件读取结束...")

}
另外还有一个更一般性的文件打开函数os.OpenFile
func OpenFile(name string, flag int, perm FileMode) (file *File, err error)