Would someone be willing to see if my explanation of what is happening is accurate? 1. if (inputStream.available() > 0) { // Read the entire file in one batch 2. byte[] buffer = new byte[inputStream.available()]; 3. int count = inputStream.read(buffer); 4. outputStream.write(buffer, 0, count); } 1. Check to see if there are bytes to be read 2. Creates a byte array with the number of bytes available 3. It reads the stream "inputStream" using the read() method, with the buffer array as an argument. It saves the size of the buffer array in the count variable. 4. This writes a file using the elements (bytes) from the buffer array, and provides the size of the array from line 3. Thanks!