Go,Golang:Read()函数

时间:2013-10-16 21:40:27

标签: io go

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

    // func (f *File) Read(b []byte) (n int, err error)
    record, err := reader.Read()

是否在os包中定义了Read()函数? 我试图理解这段代码,但无法找到定义Read()函数的位置...如果是os包中的那个,它返回记录变量的整数。但是怎么能打印出文本文件中的文字呢?

感谢〜

2 个答案:

答案 0 :(得分:3)

向后工作,你最终到了

http://golang.org/pkg/encoding/csv/#Reader.Read

读者的类型为csv.Reader,其上已定义了Read。

答案 1 :(得分:0)

Reader是包装基本Read方法的接口。

type Reader interface {
    Read(p []byte) (n int, err error)
}

Read方法将字节的一部分作为参数并返回(number of bytes read, error)

myReader := strings.NewReader("This is my reader")
arr := make([]byte, 4)
for {
// n is number of bytes read
    n, err := myReader.Read(arr)
    if err == io.EOF {
        break
    }
    fmt.Println(string(arr[:n]))
}

输出:

This
 is 
my r
eade
r

string(arr[:n])将切片arr的内容转换为字符串。

要详细了解Readio.Reader,请参阅此article