That is completely incongruous to all your previous posts, which talked about a stream of 128 characters coming in.
The quality of the help you receive will almost always be directly proportional to the quality of the information you provide.
That being said, Serial comms should NEVER be coupled to some external activity (in this case, a button press). Execute your Serial comms completely independently of everything else, store the necessary results somewhere, and then act upon them when necessary (either immediately, or if necessary based on that external activity).
What is this dvr you referred to as well. Based on your last post, it sounds like the proper means of handling incoming serial data is with a small 4 character ring buffer, constantly checking for a valid checksum with each character read in, until you have a valid checksum, and thus a valid packet of data. With the absence of any synchronizing characters, there aren't m/any other options for properly processing the incoming data.
If you look at my posts none of them say about having a stream of 128 characters. I listed the kind of command I am expecting back which was 7120A031 (hex) which is 4 bytes. My initial query was about the Mega only returning 1 byte at a time, and if I iterate the Serial.read 4 times I can read the 4 bytes into a buffer and do what I need to do with them.
All I wanted to know was whether there is a way to increase the serial buffer so that I can read all 4 bytes in one go.