로컬 파일을 열고 io.Reader
. 그 이유는 io.Reader
다음과 같이 사용중인 라이브러리에 a 를 공급해야하기 때문입니다 .
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 (name string) (file * File, err error)
열기는 읽기 위해 명명 된 파일을 엽니 다. 성공하면 반환 된 파일의 메서드를 사용하여 읽을 수 있습니다. 연관된 파일 설명자는 O_RDONLY 모드를 갖습니다. 오류가 있으면 * PathError 유형이됩니다.
반환 된 type 값은 인터페이스를 *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
}