int chunk = 1; //1 byte , you can set it more than 1 byte , however , when do that , we will failed to open an zip file
byte[] buffer = new byte[chunk];
int count = 0; //If there are nothing to read, we will return.
do
{
count = input.Read(buffer, 0, chunk);
if (count <= 0) break;
fs.Write(buffer, 0, chunk);
} while (input.CanRead);