http://play.golang.org/p/Opb7pRFyMf
// func (f *File) Read(b []byte) (n int, err error)
record, err := reader.Read()
是否在os包中定义了Read()函数? 我试图理解这段代码,但无法找到定义Read()函数的位置...如果是os包中的那个,它返回记录变量的整数。但是怎么能打印出文本文件中的文字呢?
感谢〜
答案 0 :(得分:3)
答案 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
的内容转换为字符串。
要详细了解Read
和io.Reader
,请参阅此article