It reads a extra character from the line (which is blank space).
It is NOT. Notice that the string of equal signs is NOT on the next line.
What is in the last position of the array is a line feed. THAT is why I asked you, way back at the beginning, to print line BETWEEN delimiters, and to show the EXACT output. Which you only now have gotten around to showing.
When you read up to the line feed, instead of the carriage return, the carriage return is read on the next call to readStringUntil(), f**king up that data.
Call readStringUntil() with the carriage return, and then trim() to get rid of the linefeed.
Or, call readStringUntil() with the line feed, and then read() and discard the carriage return.