欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

golang *FILE Read方法

程序员文章站 2022-04-19 17:17:06
...
package main

import (
    "fmt"
    "os"
    "io"
)

func main(){
    fileName := "src/day10/file/test.txt" 
    file,err := os.Open(fileName)
    defer file.Close()
    if err != nil{
        fmt.Println("Open the file failed,err:",err)
    }
    var arr [256]byte
    var buf []byte
    var i int = 0
    for{
        i++
        fmt.Println(i)
        n,err := file.Read(arr[:])
        if err == io.EOF{
            fmt.Println("file read finished")
            break
        }
        if err != nil {
            fmt.Println("file read failed")
            os.Exit(-1)
        }

        buf = append(buf,arr[:n]...)

        fmt.Println(string(buf))

    }
    fmt.Println(string(buf))


}

打印结果如下:
···
1
hello world
copy test
open file
2
file read finished
hello world
copy test
open file
···
通过结果可以查看到os包中*File的read方法在可以一次性读取完所有内容,如果读取完第一次并不会返回io.EOF,但是第二次读取的时候会返回这个err。