[英]Create a io.Reader from a local file
我想打開一個本地文件,然后返回一個io.Reader
。 原因是我需要將io.Reader
提供給我正在使用的庫,例如:
func read(r io.Reader) (results []string) {
}
os.Open
返回一個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.Open() :
func Open(名稱字符串)(文件*文件,錯誤錯誤)
打開打開指定的文件進行閱讀。 如果成功,返回文件上的方法可用於讀取; 關聯的文件描述符具有模式O_RDONLY。 如果有錯誤,則其類型為* PathError。
*os.File
類型的返回值實現了io.Reader
接口。
類型* os.File實現了io.Reader接口,因此您可以將文件作為Reader返回。 但是如果您有讀取大文件的意圖,我建議您使用bufio包,如下所示:
file, err := os.Open("path/file.ext")
// if err != nil { ... }
return bufio.NewReader(file)
這是一個示例,我們打開一個文本文件並從返回的* os.File實例f創建一個io.Reader
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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.