io/中的函数可以满足小文件的读取。 当文件内容较大时,需要读取缓冲区。 这时候就可以考虑os包中的Open函数和bufio中的函数了。
功能打开
func Open(名称)(文件*文件,err错误)
打开打开一个文件以供读取。 如果操作成功,则可以使用返回的文件对象的方法来读取数据; 相应的文件描述符有一个模式。 如果发生错误,则错误基础类型为*。
功能
函数(rd io。)*
创建一个默认大小的缓冲区 * 以从 r 读取。
例子:
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {
//将文件打开
file,err := os.Open("d:/main.txt")
//如果打开失败
if err != nil{
fmt.Println("文件打开失败,err=",err)
}
//等到函数退出时,为了防止内存泄露,执行关闭操作
defer file.Close()
//这里创建一个文件流
reader := bufio.NewReader(file)
//进行读取操作
for{
//这里是读取到一个换行就结束
str,err := reader.ReadString('\n')
//读取到文件末尾
if err == io.EOF{
break
}
//没有读取到文件末尾,正常输出
fmt.Println(str)
}
fmt.Println("全部文件内容读取完毕")
}