myFile.print(buf[i], HEX);
FinalInfo [i+2] = (buf[i] , HEX);
Why would you want to store 16 in the i+2 position of the array?
You you want to store the data in an array, or a string representation of the data?
if you want to store a string representation of the data, you'd use a char array that was long enough, and sprintf() with the appropriate format string, to populate (and NULL terminate) the array, resulting in a string.