簡體   English   中英

從本地文件創建io.Reader

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM