Go语言file.Read读取文件教程
在 中,读取 有四种方法,分别为:使用 读取文件,使用 file.Read 读取文件,使用 读取文件,使用 读取文件。
file.Read读取文件
语法
func (f *File) Read(b []byte) (n int, err error)
参数
参数 | 描述 |
---|---|
f | 打开的文件句柄。 |
b | 读取文件内容存放的指针。 |
返回值
返回值 | 说明 |
---|---|
n | 读取到的字节数。 |
err | 如果读取失败,返回错误信息,否则,返回 nil。 |
说明
使用 file.Read 读取文件时,首先,我们需要打开文件,接着, 使用打开的文件返回的文件句柄,来读取文件。
文件读取结束的标志是返回的 n 等于 0,因此,如果我们需要读取整个文件内容,那么我们需要使用 不停的读取文件,直到 n 等于 0。
案例
file.Read读取文件
使用 file.Read 读取文件
package main import ( "fmt" "io" "os" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") fileName := "C:/haicoder.txt" file, err := os.Open(fileName) if err != nil{ fmt.Println("Read file err, err =", err) return } defer file.Close() var chunk []byte buf := make([]byte, 1024) for{ n, err := file.Read(buf) if err != nil && err != io.EOF{ fmt.Println("read buf fail", err) return } //说明读取结束 if n == 0 { break } //读取到最终的缓冲区中 chunk = append(chunk, buf[:n]...) } fmt.Println("File Content =", string(chunk)) }
程序运行后,控制台输出如下:
首先,我们使用 os.Open 打开文件,如果文件打开成功,那么就使用 来关闭文件。接着,我们使用 for循环来不停的读取文件,直到出现错误或者读取到的文件内容的长度为 0,说明读取结束,结束循环。
每执行一次循环后,我们将读取到的内容追加到缓冲区,最后,我们打印整个缓冲区的内容,就是读取到的文件内容。接着,我们删除 “C:/haicoder.txt” 文件,再一次运行程序,程序输出如下:
我们删除文件后,我们看到,再次读取文件,程序报错,因为文件不存在。
Go语言file.Read读取文件总结
func (f *File) Read(b []byte) (n int, err error)
使用 file.Read 读取文件时,首先,我们需要打开文件,接着, 使用打开的文件返回的文件句柄,来读取文件。
文件读取结束的标志是返回的 n 等于 0,因此,如果我们需要读取整个文件内容,那么我们需要使用 for循环不停的读取文件,直到 n 等于 0。