从本地文件创建 io.Reader

我想打开一个本地文件,并返回一个 io.Reader。原因是我需要将一个 io.Reader提供给我正在使用的库,比如:

func read(r io.Reader) (results []string) {


}
118165 次浏览

使用 打开():

Func Open (name string)(File * File,err error)

打开名为 如果成功,返回文件上的方法可以是 用于读取; 关联的文件描述符具有模式 O _ RDONLY 有一个错误,它将是类型 * PathError。

类型 *os.File的返回值实现 io.Reader接口。

返回一个 io.Reader

http://play.golang.org/p/BskGT09kxL

package main


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


var _ io.Reader = (*os.File)(nil)


func main() {
fmt.Println("Hello, playground")
}

类型 * os.File 实现 io.Reader 接口,因此可以将该文件作为 Reader 返回。 但是,如果你想阅读大文件,我建议你使用 Bufio软件包,比如:

file, err := os.Open("path/file.ext")
// if err != nil { ... }


return bufio.NewReader(file)

下面是一个打开文本文件并创建 io 的示例。来自归来者的读者。文件实例 f

package main


import (
"io"
"os"
)


func main() {
f, err := os.Open("somefile.txt")
if err != nil {
panic(err)
}
defer f.Close()


var r io.Reader
r = f
}