演習 7.5:パッケージ内
のLimitReader関数はと バイト数をio受け取り、バイトの後にファイルの終わりの状態を報告するが、別のものを返します。実装します。io.Reader rnReaderrn
func LimitReader(r io.Reader, n int64) io.Reader
それを実装する方法は?
以下は私のコードです。正しくないことはわかっています。
type MyReader struct {
bytes []byte
length int
}
func (myReader *MyReader) Read (p []byte) (int, error) {
fmt.Println("be invoked")
myReader.bytes = p
myReader.length = len(p)
fmt.Printf("lenght: %d\n" , myReader.length)
return len(p), nil
}
func LimitReader(r io.Reader, n int64) io.Reader {
filecontent, _:= ioutil.ReadFile("./testfile.txt")
r.Read(filecontent[:n])
return r
}
func main() {
myReader := &MyReader{}
r := LimitReader(myReader, 100)
filecontent, _:= ioutil.ReadFile("./testfile.txt")
fmt.Println(r.Read(filecontent))
}