技術的自由への長い道

日々学んでいきます。

golang io.Copyとio.ReadFullの違いについて

io.Copyとio.ReadFullどっちを使えばいいかよくわかってなかったので調べた。

結論

io.ReadFullはbufSizeを指定しなきゃいけないっぽくて、io.CopyはbufSize指定しなくてよし

 func ReadFull(r Reader, buf []byte) (n int, err error) {
     return ReadAtLeast(r, buf, len(buf))
 }

なので var buf bytes.Bufferとしてio.ReadFullを使ってもlenが0なので結局読み込まず

大体みんなが想像する楽に全部読み込みする方法というのははReadFullじゃなくCopyの方ってことかな。