readの戻り値は EOF のときに -1 を返すために int になってるだけだから
-1 の判定した後は byte にキャストしていいよ