while (Serial.available()) {
reading[i] = Serial.read();
i = i + 1;
}
Let's suppose, when the while loop starts, that there is just one byte in the serial buffer. It takes next to no time to copy that value, update an index to point to the next available character (there aren't any) and to increment i. So, the loop starts again, and there is no data. So, the while loop ends, and you've read one byte.
How many bytes do you then pretend are in the reading array?