CodeFun Go

读文件(续1)

分三步来实现读文件,首先打开文件,然后读取文件,最后关闭文件。

对这个任务,首先使用 os.Open 函数打开一个文件,获取一个 os.File。

对于这个 os.File 对象我们可以做很多有意思的操作。

例如:

使用 Read 函数
从文件的游标的位置读取指定长度的内容。
使用 Seek 函数
移动到一个文件中已知的位置,并从这个位置开始读取。

任务结束后要使用 Close 函数关闭这个文件 (通常这个操作应该在 os.Open 操作后立即使用 defer 来完成)。

假设我们有一个文件 go.txt,文件内容如下:

Golang is an open source 
programming.
package main

import (
    "fmt"
    "log"
    "os"
)

func main() {
	f, err := os.Open("/Users/ch/project/codefun/test/big.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer f.Close()

    // Seek
    o2, err := f.Seek(7, 0)
    if err != nil {
        panic(err)
    }
    // Read
    b2 := make([]byte, 2)
    n2, err := f.Read(b2)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%d bytes at %d: %v\n", n2, o2, string(b2[:n2]))
}
2 bytes at 7: is