Here's what I'm thinking: either you can reuse the same buffer-instance between chunks (low GC overhead), or you need to create new byte-arrays for all reads, in which case it doesn't make that much of a difference if you create 10 8kb byte arrays or 1 80kb. Thoughts?