func (f *packedFileReader) Read(p []byte) (int, error) {
	n, err := f.r.Read(p) // read current block data
	for err == io.EOF {   // current block empty
		if n > 0 {
			return n, nil
		}
		if f.h == nil || f.h.last {
			return 0, io.EOF // last block so end of file
		}
		if err := f.nextBlockInFile(); err != nil {
			return 0, err
		}
		n, err = f.r.Read(p) // read new block data
	}
	return n, err
}
func (f *packedFileReader) Read(p []byte) (int, error) {
	n, err := f.r.Read(p) 
	for err == io.EOF {   
		if n > 0 {
			return n, nil
		}
		if f.h == nil || f.h.last {
			return 0, io.EOF 
		}
		if err := f.nextBlockInFile(); err != nil {
			return 0, err
		}
		n, err = f.r.Read(p) 
	}
	return n, err
}
func ( f * packedFileReader ) Read ( p [ ] byte ) ( int , error ) { n , err := f . r . Read ( p ) // read current block data for err == io . EOF { // current block empty if n > 0 { return n , nil } if f . h == nil || f . h . last { return 0 , io . EOF // last block so end of file } if err := f . nextBlockInFile ( ) ; err != nil { return 0 , err } n , err = f . r . Read ( p ) // read new block data } return n , err }
// Read reads the packed data for the current file into p.
Read reads the packed data for the current file into p .