how to save data coming from CanBus into 1 string ?

        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.