I tested copying a 500MB tar archive with diffent buffersizes, and it does make a difference.
e.g. buffersize => time in millis:
btw, accessing buffer.length inside the loop seems to affect performance for bigger lengths.
As seen in the 1st statistics, the *64 method actually takes longer than *16.
In the 2nd set i have used a buffersize var outside the loop as its constant.
I guess the results will vary as per avail memory, OS, disk types etc.
But it does make a difference to specify buffer size.
IO-308, i agree that passing a buffer would be even better.