I already completed the task, but after that I was looking at the code and I thought it seems really inefficient to be writing the entire ZipInputStream to a dummy copy on every iteration of the while loop. If it's a large archive this could really bog down the process. I was wondering if it would work just as well to do copyData just before the while loop. I can't test whether or not this validates since it only lets you validate until you get a passing solution.
Can you move the copyData line outside of the while loop?