12345678910111213141516171819202122232425262728 |
- package cfio
- import (
- "io"
- "sync"
- )
- const defaultBufferSize = 16 * 1024
- var bufferPool = sync.Pool{
- New: func() interface{} {
- return make([]byte, defaultBufferSize)
- },
- }
- func Copy(dst io.Writer, src io.Reader) (written int64, err error) {
- _, okWriteTo := src.(io.WriterTo)
- _, okReadFrom := dst.(io.ReaderFrom)
- var buffer []byte = nil
- if !(okWriteTo || okReadFrom) {
- buffer = bufferPool.Get().([]byte)
- defer bufferPool.Put(buffer)
- }
- return io.CopyBuffer(dst, src, buffer)
- }
|