If you try to read text data, where the encoding is iso-8859-1, and the byte 0xFF is in the data, you will not get that character. The string will end before that character.
Signed byte value for 0xFF is -1, and returning -1 means "no more characters". Have to read the byte (signed), convert to an unsigned int, and then return that so that 255 is returned.