> So then our transferTo() implementation should be like this? > > while ((read = this.read(buffer, 0, TRANSFER_BUFFER_SIZE)) > -1) { Isn't it the same as we have now? :) If you mean "> 0", then we should probably wait for someone with both IO and NIO expertise to have a look at this.