is there a way to do this so that it reads the data at the same speed etc as it was recorded?
Depends on what speed the data was written.
Hopefully it was written at a fixed rate that is reasonably slow, like less than 100 per second.
Use the "Blink without delay" example to see how you schedule thing to happen at regular time intervals.
if you have a parsed value ready:
if it's time to send the next value:
set the value to 0
mark the value as 'not ready'
if there is a character available in the file:
read the character
if the character is a comma:
mark the value as available
if the character is a digit:
multiply the value by 10 and add character - '0'
end of loop()