我想打开一个本地文件,并返回一个 io.Reader。原因是我需要将一个 io.Reader提供给我正在使用的库,比如:
io.Reader
func read(r io.Reader) (results []string) { }
使用 打开():
Func Open (name string)(File * File,err error) 打开名为 如果成功,返回文件上的方法可以是 用于读取; 关联的文件描述符具有模式 O _ RDONLY 有一个错误,它将是类型 * PathError。
Func Open (name string)(File * File,err error)
打开名为 如果成功,返回文件上的方法可以是 用于读取; 关联的文件描述符具有模式 O _ RDONLY 有一个错误,它将是类型 * PathError。
类型 *os.File的返回值实现 io.Reader接口。
*os.File
返回一个 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 }