convert binary Read/Write to Uint/PutUint and copy
Use NewReader instead of NewBuffer.

NewReader is slightly faster than NewBuffer, but more importantly,
ensures the data is read-only.
use strconv.FormatInt which is much faster than fmt.Sprintf
go fmt