开发者学堂课程【Go语言核心编程 - 面向对象、文件、单元测试、反射、TCP编程:一次性读取文件】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9728
一次性读取文件
内容介绍
一、方法与函数
二、代码演示
一、 方法与函数
读文件操作应用实例
读取文件的内容并显示在终端(使用 ioutil 一次将整个文件读入到内存中),这种方式比较简单,比较直接,适用于文件不大的情况。如果文件比较大,可以使用前面的待缓冲方法。
相关方法和函数(ioutil.ReadFile)
func ReadFile
func ReadFile(filename string) ([]byte, error)
ReadFile 从 filename 指定的文件中读取数据并返回文件的内容。成功的调用返回的 err 为 nil 而非 EOF。因为本函数定义为读取整个文件,它不会将读取返回的 EOF 视为应报告的错误。
二、代码演示
新建文件 :main.go.
package main
import(
"fmt"
"io/ioutil"
func main()
//使用 ioutil.ReadFile 一次性将文件读取到位
file:="d:/test.txt"
ioutil.ReadFi
此时会返回两个文件夹,一步一步进行查找,点开 io,ioutil 包,有一个 func ReadFile:
func ReadFile(filerpame string)( []byte,error)。这是文件的全路径,返回的是 byte 切片,是以字节的形式返回的,同时有 error,也就是说如果有错误,error 就不会返回了。
ReadFile reads the file named by filename and returns the contents.A successful call returns err == nil, not err== EOF.Because ReadFile reads the whole file, it does not treat an EOF from Read as an error to be reported.
此时有示例:
package main
import (
“fmt”
io/ioutil"
“log”
func main()_
content, err := ioutil.ReadFile("testdata/hello”)
if err !=nil
log.Fatal(err)
fmt.Printf(“File contents:%s",content)
如果说没有退出就正常读取,用 printf 把内容输出来,此时来演示,做一个判断:
content, err :="ioutil.ReadFile(file)
if err != nil
fmt.Printf("read file err=%v", err)
//把读取到的内容显示到终端fmt.Printf("%v",content) //[]byte
//我们没有显式的Open文件,因此也不需要显式的 Close 文件
//因为,文件的 Open 和 Close 被封装到 ReadFile 函数内部.
现在输出代码,D: goproject src go_
edemo03 >go runmain – go。
此时可以看到全是数字,要想输出具体内容,就需要进行以下操作:
/ /把读取到的内容显示到终端
//fmt. Printf("%v", content) // [ ]byte
fmt . Printf( "%v", string( content) //[ ]byte