Hi,
I opened the ATMega2560 datasheet. (The same could you do) First page, 11th line of FEATURES says: "– 8Kbytes Internal SRAM".
You see: No need to read the complete datasheet. You really need to learn to find out such basic stuff on your own.
So it is impossible to use this complete 8kBytes for reading 8kBytes of data into a string variable.
Other variables will use RAM, too. Processing some code algorithm will use RAM and some kind of ARDUINO overhead will use RAM, too.
How much exactly you can use for the string - maybe nobody here can answer.
Maybe there is some fixed limit by the ARDUINO IDE (Compiler) or it is limited by the other used variables, maybe dynamically allocated.
Maybe there is a function (runtime) to give back the string size. (like: sizeof() )
Klaus