golang *FILE Read方法

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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • io包中最重要的是两个接口:Reader和Writer Reader接口##### type Writer int...
    勿以浮沙筑高台阅读 16,332评论 0 5
  • 概述 java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。java.io ...
    Steven1997阅读 9,244评论 1 25
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,465评论 0 5
  • 导读 过年的年味越来越淡了,回家的感情越来越浓了。无论多么风雨兼程,我们还是会回到心心念念的家,因为,这里,有我们...
    南部牛郎阅读 394评论 0 2
  • 文字是说给自己的情话,也许我们火不了,也不想火,反正谁在乎呢?一个人,一座城。岂知你故人名望,也不问别来无恙。 ...
    才蛋阅读 404评论 12 10