Вызов метода fos.write(200);
записывает байт данных.Когда вы пишете 200, он прекрасно сохраняет это в 8-битном значении.
Но когда вы пытаетесь записать 2000, он игнорирует все, что выше первых 8 бит.2000 в двоичном виде - 0111 1101 0000
.Но так как старшие 4 бита потеряны, результирующее записанное значение равно 1101 0000
или 208 в десятичном виде.
Методы немного сбивают с толку, поскольку write()
принимает целочисленное значение, а read()
возвращает целочисленное значение.